Лицензионное соглашение

Исходный код проекта MaNGOS лицензирован на условиях GNU General Public License (GPL), версия 2.

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

Лицензия GPL позволяет Вам …

Часто тексты лицензий длинны и довольно сложны для понимания, поэтому ниже мы предоставляем Вам ее краткое содержание, описывающее то, что Вам разрешено делать с исходным кодом MaNGOS, а что запрещено.

Лицензия GPL позволяет ...
бесплатно получать исходный код MaNGOS,
делать исходный код доступным для скачивания,
модифицировать исходный код и приватно его использовать,
изменять исходный код и распостранять в виде программы только после того, как вы открыли изменения под той же лицензией (GPL), и предоставили возможность получить исходный код изменений (предоставление бинарников недостаточное условие),
изменять исходный код и распространять патчи.

Лицензия GPL не позволяет Вам ...
распространять программу без исходного кода, если Вы его изменили,
выпускать исходный код под другими лицензиями,
ограничить доступ к исходным текстам. (то есть сделать код частично доступным)

Лицензионное соглашение конечного пользователя MaNGOS (MaNGOS EULA)

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

* выходящие за пределы городской сети или региональной сети в масштабах провайдера Интернет.

Источник: http://www.getMaNGOS.com [перевёл Cracker]

Компоновка материалов: DeusModus


Что такое MaNGOS

Официальный Сайт Сайт Русского Сообщества

MaNGOS (аббревиатура от Massive Network Game Object Server) - свободный, бесплатный проект, основанный на лицензии GNU GPL версии 2.
Целью проекта является создание альтернативного программного обеспечения(сервера) для популярной игры World of Warcraft® от Blizzard Entertainment©.
Проект MaNGOS существует только в образовательных целях, и ни в коем случае не направлен на извлечение прибыли.
Исходный код проекта написан на C++ и является абсолютно открытым.
MaNGOS может работать под управлением Linux, Microsoft Windows и FreeBSD. Поддерживаются СУБД MySQL и PostgreSQL.
Из-за естественного состояния в реализации поддержки очередных обновлений World of Warcraft®, MaNGOS всегда будет находиться в стадии beta-версии.
Из-за ограничений лицензии может использоваться только в локальных (городская сеть, региональная сеть в масштабах провайдера Интернет) серверах.

Источник: http://ru.wikipedia.org/wiki/MaNGOS [отредактировано]


Управление и Настройка сопутствующего Софта

ВНИМАНИЕ!

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

Читайте внимательно.


Описание

Git — распределённая система управления версиями файлов и совместной работы, для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое.
Такие системы наиболее широко применяются при разработке программного обеспечения, для хранения исходных кодов разрабатываемой программы.
Проект Git был создан Линусом Торвальдсом для управления разработкой ядра Linux . На сегодняшний день поддерживается Джунио Хамано (Junio C. Hamano) .

Примерами проектов, использующих Git на сегодняшний день, являются Linux kernel , Cairo , GNU Core Utilities , Mesa , Wine и некоторые дистрибутивы GNU/Linux .
Программа является свободной и выпущена под лицензией GNU GPL версии 2.

Источник: http://ru.wikipedia.org


Как получить git репозиторий

Будет полезно иметь git хранилище для экспериментов, пока вы читаете это руководство.

Лучший способ получить его с помощью команды git-clone(1), которая загрузит копию существующего репозитория. Если у Вы ещё не сообразили как это сделать, приведу несколько интересных примеров:

# взять сам git (примерно. 10MB закачки):
$ git clone git://git.kernel.org/pub/scm/git/git.git
# Ядро linux (примерно. 150MB закачки):
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

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

Команда clone создаёт новый каталог с именем проекта ( “git” или “linux-2.6” в приведённых выше примерах выше).

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


Как проверить различные версии проекта

Git это наилучший инструмент для хранении истории коллекции файлов.
Он хранит историю в виде сжатой коллекции взаимосвязанных отпечатков (снапшотов) содержимого проекта. В git каждая такая версия называется коммит.

Эти отпечатки, не обязательно, обычно образуют одну линию разработки от старейшего снапшота, до новейшего; вместе с тем, они могут образовывать параллельные линии разработки, называемые ветками, которые можно объединять и разделять.

Один Git репозиторий может отслеживать развитие в нескольких ветках.
Это позволяет сохранять список основных вершин (head) которые ссылаются на последние коммиты каждой ветки; команда git-branch показывает список вершин веток:

$ git branch
* master

Свежие склонированные репозитории содержат одну вершину ветки, по умолчанию имеющую название “master”, и стартовый рабочий каталог в соответствии с вершиной ветки master.

Большинство проектов также используют теги.

Тэги, подобно вершинам, являются ссылками в истории проекта, и могут быть перечислены командой git-tag(1):

$ git tag -l
v2.6.11
v2.6.11-tree
v2.6.12
v2.6.12-rc2
v2.6.12-rc3
v2.6.12-rc4
v2.6.12-rc5
v2.6.12-rc6
v2.6.13
...

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

Создать новую вершину ветки указывающую на одну из этих версий и проверить её можно с с помощью git checkout :

$ git checkout -b new v2.6.13

Рабочий каталог теперь отражает то содержимое проекта которое было при установке тега v2.6.13, а git-branch(1) показывает две ветви, причём звёздочкой помечена ветка указанная в команде git checkout :

$ git branch
master
* new

Если вы решите, что вы хотите увидеть версию 2.6.17, вы можете изменить текущую ветку на точку v2.6.17 вместо текущей

$ git reset --hard v2.6.17

Заметим, что если текущая вершина ветки была лишь ссылкой на конкретный момент истории, а затем была сброшена вами это может привести к потери части истории, поэтому используйте эту команду осторожно.


Коммиты

Каждое изменение в истории проекта представлено в виде фиксации (коммита).
Команда git-show(1) показывает самые последние коммиты текущей ветки:

$ git show
commit 17cf781661e6d38f737f15f53ab552f1e95960d7
Author: Linus Torvalds <torvalds@ppc970.osdl.org.(none)>
Date: Tue Apr 19 14:11:06 2005 -0700
Remove duplicate getenv(DB_ENVIRONMENT) call

Noted by Tony Luck.

diff --git a/init-db.c b/init-db.c
index 65898fa..b002dc6 100644

a/init-db.c
+++ b/init-db.c
@@ -7,7 +7,7 @@

int main(int argc, char **argv)
{

– char *sha1_dir = getenv(DB_ENVIRONMENT), *path;
+ char *sha1_dir, *path;

int len, i;

if (mkdir(«.git», 0755) < 0) {

Как вы можете увидеть, в коммите указатся кто сделал последние изменений, что сделал и почему.

Каждый коммит имеет 40-значный шестнадцатеричный идентификатор, который иногда называются «именем объекта» или «SHA1 идентификатором», и показывается в первой строке вывода “git show”.

Обычно, вы можете, ссылаться на коммит через короткое имя, такое как тег или имя ветви, но и имя образуемое SHA1 идентификатором часто тоже бывает полезным.

Самое главное в нём, что это уникальное имя для этого коммита: так, если вы скажите кому-нибудь другому название объекта (например, в электронной почте), то вам гарантируется, что это имя будет относиться к тому же коммиту что и в у вас (предполагается, что этот коммит есть у всех).
Это имя объекта вычисляется как хэш его содержимого коммита, и вам гарантируется, что содержимое коммита не может изменится без изменения его имени.

Фактически в Главе 7 «Концепция Git» мы увидим, что всё хранящиеся в истории git, включая файлы данных и содержимое каталога, хранится в объектах с именем которого является хэш его содержимого.


Коммиты, родители и доступность

Каждый коммит (за исключением самого первого коммита в проекте) имеет родительские коммит, которые показывает, что произошло до этого коммита.
После цепочки родителей, в конечном итоге мы перейдём обратно в начальное состояние проекта.
Тем не менее, коммиты не образуют простой список; git позволяет разделять линии разработки, а затем объединять их снова, и точки, где два направления разработки объединяются в одно называются «слиянием» (merge).

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

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

Далее, мы говорим, что коммит Х «доступен» от коммита Y, если коммит Х предок коммита Y. Эквивалентно, можно сказать, что Y является потомком X, или что существует цепь родства (родителей), идущая от коммита Y до коммита X.


Диаграммы истории

Мы будем иногда представлять git историю с помощью диаграмм, как показано ниже. Коммиты показаны буквой “o”, а связь между ними — линиями оканчивающимися – / и \. Время идет слева направо. Если нам нужно говорить о конкретном коммите символ “o” может быть заменён другой буквой или номером :

ooo «-- Branch A
/

ooo «-- master

\
ooo «-- Branch B


Что такое ветка?

Когда нам нужно быть точными, мы будем использовать слово «ветка» (branch) которое означает линию разработки, и «вершина ветки» (или просто «вершина» (head)) означает ссылку на последний коммит на ветке .
В приведенном выше примере, вершина ветки имеет имя «А» и является указателем на один конкретный коммит, но когда мы ссылаемся на линию из трех коммитов до этой точки, мы называем эту цепочку коммитов «веткой А».

Однако, когда понятно к чему относится термин, мы просто будем использовать термин «ветвь» как для ветви, так и только для вершины этой ветви.


Действия с ветками

Создать, удалить и измененить ветку можно очень быстро и очень просто, вот сумма команд:

git branch
список всех веток

git branch «branch»

создать новую ветку с именем «branch», ссылающуюся на некотрую точку в истории
текущей ветки

git branch «branch» «start-point»

создать новую ветку с именем «branch», ссылающуюся на точку «start-point», которая
может быть указана так, как вы хотите – через имя ветки или имя тэга.

git branch -d «branch»

удалить ветвь «branch», если удаляемая вами ветвь имеет точки вне доступности от
текущей ветки, то эта команда завершится неудачно с предупреждением.

git branch -D «branch»

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

git checkout «branch»

сделать ветку «branch» текущей, при этом обновляется рабочий каталог, отражая
состояние ветки «branch»

git checkout -b «new» «start-point»

создать новую ветку «new» ссылающуюся на «start-point», и сделать её текущей.

Специальный символ “HEAD” всегда означает вершину текущей ветки. Фактически, git использует файл с именем “HEAD” в .git каталоге, чтобы запомнить, текущую ветку :

$ cat .git/HEAD
ref: refs/heads/master


Изучение старой версия без создания новой ветки

Команда git-checkout, как правило, ожидает что вы укажете вершину ветки, но она также принимает произвольный коммит, например, вы можете проверить коммит, на который указывает тег:

$ git checkout v2.6.17

Примечание: переход к “v2.6.17”, который не входит в локальную ветвь. Если вы хотите создать новую ветку через checkout, вы можете сделать (сейчас или позже), используя команды checkout. Пример:

git checkout -b «new_branch_name»
HEAD is now at 427abfa... Linux v2.6.17

HEAD ссылается через имя SHA1 на коммит, а не на ветку, и git branch показывает, что вы вне ветки:

$ cat .git/HEAD
427abfa28afedffadfca9dd8b067eb6d36bac53f
$ git branch
(no branch)
master

В данном случае мы можем сказать, что вершина «отделена».

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


Изучение веток удалённого репозитория

Ветвь «master», которая была создана во время клонирования является копией HEAD клонированного репозитория.

Этот репозиторий, возможно, также имеет другие ветки, и в вашем локальном репозитории есть ветки, с помощью которых можно проследить каждую из этих удаленных веток, используя оппцию «-r» git-branch(1):

$ git branch -r
origin/HEAD
origin/html
origin/maint
origin/man
origin/master
origin/next
origin/pu
origin/todo

Вы не можете проверить их удалённо, но вы можете проверить их ветви в вашем репозитории, используя теги:

$ git checkout -b my-todo-copy origin/todo

Заметим, что название “origin” это просто название, которое git использует по умолчанию для обозначения репозитория, откуда был клонирован текущий репозиторий.


Имена веток, ярлыков, а также другие ссылки

Ветки, удалённое отслеживание веток и тэги – все это ссылки на коммиты. Все ссылки имеют полное имя с слеш-разделителем (косой чертой) и путем, которое начинается с “refs”; фактически раньше мы пользовались короткими именами (сокращениями):

* ветка «тест» это сокращение «refs/heads/test».
* тег “v2.6.18”' это сокращение «refs/tags/v2.6.18”.
* «origin/master» это сокращение «refs/remotes/origin/master»..

Полное имя может пригодиться, если, например, существует и тег, и ветвь с одним и тем-же именем. (Вновь созданные ссылки на самом деле хранятся в каталоге .git/refs по пути заданным их именем. Однако для эффективности они также могут быть упакованы вместе в один общий файл, см. git-pack-refs(1) ).

Другой, часто полезный ярлык это “HEAD”, на него можно сослаться только используя название репозитория. Так, например, “origin”, как правило, ярлык на HEAD ветки в репозитории “origin”.

Для полного списка путей которые git проверяют по ссылкам, и о порядке их использования для решения выбора, когда имеются несколько ссылок с одним сокращением, см. в выводе команды git-rev-parse(1) раздел SPECIFYING REVISIONS (Указание ревизий) .


Обновление репозитория через git fetch

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

Команда “git fetch”, без дополнительных аргументов, будет обновлять все отслеживаемые ветки до последней версии найденной в этом репозитории.
Это касается не только ваших веток, это коснётся и даже ветки “master”, которая была создана при вашем клонировании.


Извлечение веток из других репозиториев

Вы также можете отслеживать ветки из других репозиториев, отличных от вашего источника клонирования используя git-remote(1) :

$ git remote add linux-nfs git://linux-nfs.org/pub/nfs-2.6.git
$ git fetch linux-nfs
* refs/remotes/linux-nfs/master: storing branch 'master' ...
commit: bf81b46

Новая ветка удалённого отслеживания будут сохранена с коротким именем, которое вы задали в команде «git remote add», в данном случае c именем «linux-nfs»:

$ git branch -r
linux-nfs/master
origin/master

Если вы запустите «git fetch «remote»" позже, то отслеживаемая ветка с именем «remote» будет обновлена.

Если проанализировать файл .git/config, то можно увидить, как git добавляет новые блоки:

$ cat .git/config
...
[remote “linux-nfs”]
url = git://linux-nfs.org/pub/nfs-2.6.git
fetch = +refs/heads/*:refs/remotes/linux-nfs/*
...

Как git отслеживает удалённые ветки;
Вы можете модифицировать или удалять параметры конфигурации, редактируя файл .git/config в текстовым редакторе. (См. раздел “CONFIGURATION FILE” в выводе команды git-config(1) для изучения деталей).

Git – это один из наилучших инструментов для хранения истории множества файлов.

Это объясняется тем, что он хранит сжатые снапшоты содержащие файла иерархии, вместе с «коммитами», которые отслеживают связи между ними.

Git является чрезвычайно гибким и быстрым инструментом для изучения истории проекта.

Начнём с одного специализированного инструмента, которое обычно используется для поиска программной ошибки («бага») в проекте.


Как используя bisect найти регрессию

Предположим, версия 2.6.18 вашего проекта была рабочей, но в версия «мастер» возникла ошибка.

Иногда лучшим способом найти причину такой регрессии, состоит в том, чтобы выполнить поиск с отдельного коммита в истории проекта который является причиной проблемы. Команда git-bisect(1) может помочь вам сделать это:

$ git bisect start
$ git bisect good v2.6.18
$ git bisect bad master
Bisecting: 3537 revisions left to test after this
[65934a9a028b88e83e2b0f8b36618fe503349f8e] BLOCK: Make USB storage depend on SCSI rather than selecting it [try #6]

Если вы запускаете сейчас “git branch” вы увидите, что git временно переместился в новую ветку с названием “bisect”. Эта ветка указывает на коммит ( с именем снапшота 65934…), который доступен из «мастер», но из v2.6.18. Откомпилируйте и протестировать его и посмотрите есть-ли в нём проблема. Допустим, что есть. Тогда:

$ git bisect bad
Bisecting: 1769 revisions left to test after this
[7eff82c8b1511017ae605f0c99ac275a7e21b867] i2c-core: Drop useless bitmaskings

Извлекаем для проверки более старую версию. Продолжая аналогично, проверяем на каждом этапе версию и говорим git`у хорошая это версия, или плохая. Можно заметить что каждый раз число подозрительных версий сокращается примерно вдвое. После примерно 13 тестов (в данном случае), получаем идентификатор «виновного» коммита. Затем можно проанализировать коммит с помощью git-show(1), найти кто записал этот коммит, и направить ему по e-mail баг-рапорт об ошибке с идентификатором этого коммита. Наконец, запустив :

$ git bisect reset

возвращаемся к ветке удаляя перед этим временную ветвь «bisect».

Заметим, что версия, которую извлекает вам для проверки git-bisect является лишь предложением, и Вы можете сразу пробовать другую версию, если считаете что это более правильно. Например, время от времени вы можете «приземлиться» в коммит который не связан c предыдущей последовательностью, запустив

$ git bisect visualize

если запустить gitk, то ярлык коммита в этом случае будет отмечен маркером “bisect”.

Выбрав безопасной просмотр ближайшего коммита, замечаем его идентификатор и проверив его уходим из него командой (Chose a safe-looking commit nearby, note its commit id, and check it out with):

$ git reset --hard fb47ddb2db...

затем проверив его, запускаем соответственно «bisect good» или «bisect bad» и продолжаем.


Именование коммитов

Мы уже видели несколько способов именования коммитов:

* Шестнадцатеричное 40-значное имя объекта (снапшот).
* Имя ветки: относится к коммиту на вершине данной ветки
* Имя тэга: ссылка на коммит на который учитывает тэг (мы видели ветки и тэги на которые ссылаются в специальных случаях).
* HEAD: ссылка на вершину текущей ветки

Есть много других имён, см .в странице man git-rev-parse(1) раздел “SPECIFYING REVISIONS” с полным перечнем способов задания имени версий.

Некоторые примеры:

$ git show fb47ddb2 # первые несколько символов имени объекта
# Как правило, достаточно указать его несколько которые делают его уникальным.
$ git show HEAD^ # родители коммита HEAD
$ git show HEAD^^ # «дедушки» коммита HEAD
$ git show HEAD4 # «пра-прадедушки»

Напомним, что если произошло слияние, то коммит может иметь больше чем одного родителя; по умолчанию, ^ и ~ следует за первым родителем, перечисленным в коммите, но вы также можете сделать другой выбор :

$ git show HEAD^1 # показать первого родителя HEAD
$ git show HEAD^2 # показать второго родителя HEAD

В дополнение к HEAD, существует ряд других специальных имён для коммитов:

Слияния (будет обсуждаться позже) это такие операции подобные git-reset которые изменяют текущий проверяемый коммит и как правило устанавливают имя ORIG_HEAD на значение HEAD перед выполнением операции.

Операция git-fetch всегда сохраняет вершину последней извлекаемой ветки в имени FETCH_HEAD. Например, если вы запускаете git fetch без задания локальной ветки в качестве цели операции

$ git fetch git://example.com/proj.git theirbranch

взятые коммиты всё-равно будет доступны через FETCH_HEAD.

Когда мы обсуждаем слияния мы также видим особых имя MERGE_HEAD, которое относится к другой ветви которую мы объединяем с текущей веткой.
Команда git-rev-parse(1) — это команда низкого уровня, которая иногда полезна для перевода некоторых имён коммита в его имя объекта (имя снапшота) :

$ git rev-parse origin
e05db0fd4f31dde7005f075a84f96b360d05984b


Создание тегов

Мы можем создать тег к ссылке на особый коммит. После запуска

$ git tag stable-1 1b2e1d63ff

вы можете использовать имя stable-1 как ссылку на коммит 1b2e1d63ff.

Это создаст «легковесный» тег. Если вы хотели бы также включать комментарии в тег, и, возможно, подписать его криптографическими, то вы должны создайте вместо тэга объект, подробнее см.. man страницу git-tag(1).


Просмотр версий

Команда git-log(1) может показать лист коммитов.

Собственно она показывает все коммиты доступные из родительского коммита: но она так-же может обработать специфичные запросы :

$ git log v2.5.. # коммиты от v2.5 (только доступные)
$ git log test..master # доступные коммиты от master но не из test
$ git log master..test # ...доступные от test но не из master (две точки)
$ git log master...test # ...или от test или от master (три точки)
# но не из обоих

$ git log --since="2 weeks ago" # коммиты за последние две недели
$ git log Makefile # коммиты в которых менялся Makefile
$ git log fs/ # ... в которых изменился какой-нибудь файл в fs/
$ git log -S'foo()' # коммиты, которые добавили или удалили любые файлы

# имеющую строку 'foo()'

И, конечно, вы можете комбинировать все это; следующая команда находит коммиты из v2.5 в которых изменяются Makefile и изменения в любых файлов в fs/:

$ git log v2.5.. Makefile fs/

Также вы можете использовать git log, для просмотра патчей:

$ git log -p

См. описание опции "—pretty" в man странице git-log(1) страницу и о других опциях.

Заметим, что git log начинается с самых последних коммитов, и от родителей далее, однако, поскольку git история может содержать несколько независимых линий разработки, порядок в некоторой степени будет произвольным.


Формирование сравнений (diff)

Вы можете создавать сравнения (diff) между любыми двумя версиями используя git-diff(1):

$ git diff master..test

Эта команда создаст текст различий (diff) между двумя ветками test и master.

Если вы хотите найти различия от их общего предка до test, вы можете использовать три точки вместо двух:

$ git diff master...test

Иногда вы хотите вместо различий создать набор патчей, для этого можно использовать git format-patch(1):

$ git format-patch master..test

будет сгенерирован файл патча для совершения каждого коммита доступного из test, до master.


Просмотр старых версии файлов

Вы всегда можете просмотреть старую версию файла, перейдя к коммиту с его первой версией..

Но иногда бывает удобнее иметь возможность просмотреть старую версию одного файла, не проверив ничего другого; это делает команда:

$ git show v2.5:fs/locks.c

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


Игнорирование файлов

При работе с проект часто созжаются файлы, которые вы-бы не хотели отслеживать с помощью git. Это обычно файлы созданные процессом сборки и временные резервные копии файлов, созданных вашим редактором. Естественно, нет смысла отслеживать такие файлы и законно возникает вопрос – как сделать так, чтобы вызов “git add” не добавлял их. Отслеживание их быстро начинает раздражатью Из-за изменений этих файлов становятся практически бесполезны команды “git add .» и “git commit -a”, а изменения этих файлов засоряют вывод команды “git status”.

Вы можете указать git игнорировать определенные файлы, создав файл с именем .gitignore в верхнем уровне вашего рабочего каталога, например, с таким содержанием:

# Строки, начинающиеся с '#' считаются комментариев.
# Игнорировать любой файл с именем foo.txt.
foo.txt
# Игнорировать (генерируются) html файлы,
*.html *. html
# Кроме foo.html который включается в индекс вручную.
!foo.html ! foo.html
# Игнорировать файлы с расширением *.a и *.o
*.[oa]

См. gitignore (5) для детального объяснения синтаксиса. Вы также можете разместить файлы .gitignore в другие каталоги вашего рабочего каталога, и они будут распространяться на эти каталоги и их подкаталоги. Файлы .gitignore могут быть добавлены в репозиторий подобно другим файлам (просто запустив git add .gitignore, как обычно), удобно также сделать так, что-бы при клонировании репозитория другими пользователями по этим шаблонам эти файлы исключались из копирования. Если вы хотите, чтобы исключающие шаблоны влияли только в некоторых репозиториях (вместо каждого репозитория для данного проекта), вы можете поместить шаюлоны в файл вашего репозитория с именем .git/info/exclude, или в файл, задаваемый значением переменной core.excludesfile вашей конфигурации.

Некоторые git команды могут также исключатm шаблоны непосредственно в командной строке. Подробнее см. man gitignore (5) .


Как осуществить слияние

Вы можете объединить две разделённые ветви разработки командой git-merge(1):

$ git merge branchname

при этом сливается ветка разработки “branchname» c текущей веткой. Если есть конфликты, например, если один и тот же файл изменяется двумя различными способами в удалённой ветке и в локальной ветке, вы будете предупреждены; вывод будет выглядеть примерно так:

$ git merge next
100% (4/4) done
Auto-merged file.txt
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.

Перевод сообщения:

# Авто-слияние file.txt
# Конфликт (содержимого): Конфликт слияния в file.txt
# Автоматическое слияние с ошибкой; устраните конфликты, а затем включите результат
# в коммит.

Маркеры кофликта остаются в проблемных файлах, и после того, как вы разрешите конфликты вручную, вы можете обновить содержимое индекса и запустить git commit, как при обычном изменении файлов.

Если рассматривать результирующий коммит используя gitk, можно увидеть, что он имеет двух родителей один из которых вершина текущей ветки, а другой – вершина другой ветки.


Разрешение конфликтов объединений

Если слияние не произошло автоматически, git помещает индекс и рабочий катвалог в специальное состояние содержащее всю необходимую информацию чтобы помочь разрешить конфликт слияния. Файлы с конфликтами помечены в индексе специально, так, что до тех пор, пока вы решите проблему и не обновите индекс, совершить git-commit(1) не удастся:

$ git commit
file.txt: needs merge file.txt
#необходимо объединить file.txt

Кроме того, в git-status(1) будут перечислены эти файлы, как “unmerged” (необъединённые), а файлы с конфликтами будет помечены маркерами конфликта, например:

<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

Все, что вам необходимо сделать, это отредактировать файлы для разрешения конфликтов, а затем дать команды

$ git add file.txt
$ git commit

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

Выше описоно всё, что вам необходимо знать для решения простых слияния.
Но git также может предоставить дополнительную информацию, чтобы помочь урегулировать более сложные конфликты:


Получение помощи при разрешения конфликтов слияния

Все изменения, которые git смог объединить автоматически уже добавлены в файл индекса, так что git-diff(1) показывает только конфликты. Используется особый синтаксис:

$ git diff
diff --cc file.txt
index 802992c,2b60207..0000000
--- a/file.txt
+++ b/file.txt
@@@ -1,1 -1,1 +1,5 @@@
++<<<<<<< HEAD:file.txt
+Hello world
++=======
+ Goodbye
++>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

Напомним, что комммит, который будут зафиксирован после того, как мы урегулировали конфликт будет иметь двух родителей, а не одного: один из родителей будет HEAD – вершина текущей ветки; а другой будут вершиной другой ветви, значение которой временно сохраняется в переменной MERGE_HEAD. В ходе слияния, индекс содержит три версии каждого файла.
Каждая из этих трех «стадий файла» представляет различные версии файла:

$ git show :1:file.txt # файл в общий предке обеих ветвей
$ git show :2:file.txt # Версия HEAD, но и в том числе любое
# неконфликтное изменение из MERGE_HEAD
$ git show :3:file.txt # версия с MERGE_HEAD, но и в том числе любое
# не конфликтующее изменение от HEAD.

Начиная со стадии 2 и стадии 3 версии были обновлены с неконфликтными изменениями, и остающиеся разлияия между ними являются существенной для анализа слияния, и которую можно получить командой git-diff(1) для из индекса для показа этих оставшихся конфликтов.

Команда git diff показывает различия между версией рабочего каталога file.txt и версиями стадии 2 и стадии 3.
Таким образом заменяя в каждой строке один "+" или “-", он теперь использует две колонки: первая колонка используется для различия между первым родителем и рабочий каталогом, а вторая отмечает различия между вторым родителем и рабочий каталогом. (См. “COMBINED DIFF FORMAT” раздела git-diff-files(1) для деталей формата.)

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

$ git diff
diff --cc file.txt
index 802992c,2b60207..0000000
a/file.txt
+++ b/file.txt
@@@ -1,1 -1,1 +1,1 @@@
– Hello world
-Goodbye
++Goodbye world

Здесь видно, что наше версия решение исключить “Hello world” от первого родителя, удалить “Goodbye” от второго родителя, и добавить: “Goodbye world”, которое ранее отсутствовало в обоих предках.

В некоторых особые опции diff позволяют находить различия рабочего каталога от любого из этих этапов:

$ git diff -1 file.txt # различий с этапом 1
$ git diff --base file.txt # как выше
$ git diff -2 file.txt # различий c этапом 2
$ git diff --ours file.txt # как выше
$ git diff -3 file.txt # различий c этапом 3
$ git diff --theirs file.txt # как выше.

Командами git-log(1) и gitk[1] также обеспечивается помощь при слиянии:

$ git log --merge
$ gitk --merge

Они будут показывать все коммиты, которые существуют только в HEAD и в MERGE_HEAD, и которых касаются необъеденяемый файл.

Вы также можете использовать git-mergetool(1) которая позволяет объединить необъеденённые файлы с помощью внешних средств, таких как emacs или kdiff3.

Каждый раз, когда вы урегулировать конфликты в файле и обновляя индекс:

$ git add file.txt

различные этапы этого файла будет «коллапсировать», после чего git-diff уже не будут (по умолчанию) показывать различия для этого файла.


Отмена слияния

Если вы не смогли слить ветви и решили просто отказаться и отказаться, вы всегда можете вернуться к состоянию до слияния :

$ git reset --hard HEAD

Или, если вы уже зафиксировали слияние коммитом, что вы хотите его отменить,

$ git reset --hard ORIG_HEAD

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


Быстрое слияние вперёд

Существует один особый случай, не упомянутый выше, которая третируется по-разному. Нормально, результатом слияния является коммит слияния с двумя родителями, в точке объединения на двух линий разработки.

Однако, если текущая ветка является потомком другой и каждый коммит всегда один и всегда содержат коммит предыдущего, то можно просто выполнив команду git`ом “fast forward” (Быстрое движение вперёд) вершина текущей ветки продвинется вперед до точки вершины объединения в новую ветвь, без каких-либо новых созданий коммитов.


Исправление ошибок

Если вы сделали ошибку в рабочем каталоге, но пока еще не зафиксировали вашу ошибку, вы можете вернуть рабочий каталог в прошлое состояние командой

$ git reset --hard HEAD

Если вы сделаете коммит и позже вы решили отказаться от него, то у есть два принципиально различных способа решения проблемы:

  1. Вы можете создавать новые коммит, в котором отменить всё, что вы сделали в старом коммите. Это правильный вариант, если ваши ошибки уже были преданы гласности.
  2. Ни в коем случае не делайте этого, если вы уже сделали историю гласной; git обычно не ожидает изменения истоии проекта, и не может корректно выполнять частые слияния с веткой, у которой имело изменение истории. Напрример, от удаляемого вами коммита кто-то уже мог создать отдельную ветку разработки и такая ветка не сможет быть в дальнейшем корректно слита с вашим проектом.


Исправление ошибки новым коммитом

Создание нового коммита, который отменяет ранее сделанные исправления, очень легко, просто дайте команду git-revert(1) с ссылкой на плохой коммит; например, вернуться к последниме коммиту:

$ git revert HEAD

Это позволит создать новыЙ коммит, который “откатывает” изменения HEAD. Вам будет предоставлена возможность отредактировать сообщение для совершения нового коммита.

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

$ git revert HEAD^

В этом случае git попытается отменить старые изменения, оставляя нетронутыми любые изменения, сделанные после коммита.

Если последние изменения пересекаются с изменениями будет восстановления, Вам будет предложено устранить конфликты вручную, как и в случае удалени конфликтов a merge


Исправление ошибки путём переписывания истории

Если взять проблематичный коммит является последним коммитом, и вы еще не сделали его публичным, вы можете просто удалить его, используя git-reset .

Кроме того, вы можете отредактироватьсодержимое рабочего каталога и обновлять индекс для устранения ошибки, так-же, как если бы вы хотели создать новый коммит, а запустив

$ git commit --amend

который заменит старый коммит новым путём включения ваших изменений, и давая вам возможность изменить вначале старое сообщение коммита.
Опять же, вы никогда не должны делать это с коммитом который уже был объединён в другую ветвь, в этом случае лучше использовать git-revert(1).
Кроме того, можно заменить более старые коммиты в истории, но это более сложная тема и мы оставим её его для другой главы.


Извлечение старой версии файла

В процессе отмены предыдущих плохие изменений, вы можете обнаружить, что было-бы полезно проверить более старую версию файла командой git-checkout(1). Мы использовали уже git checkout раньще, что-бы сменить текущую ветку, но эта команда работает совершенно по-другому, если в качестве аргумента получает путь до файла :

$ git checkout HEAD^ path/to/file

заменяет содержимое указанного файла, и из коммита HEAD^, а также обновляет соответственно индекс. Команда не меняет текущую ветвь. Если вы просто хотите взглянуть на старую версию файла без изменения рабочего каталога, вы можете сделать git-show(1):

$ git show HEAD^:path/to/file

который будут отображён с учетом версии файла.


Временный отказ от проделанной работы

Допустим вы находитесь в середине работы над чем-то сложным, и обнаруживаете не очевидную, но тривиальную ошибку. Вы хотите её исправить, прежде чем продолжать работу дальше. Вы можете применить git-stash(1) для сохранения текущего состояние вашей работы, и после устранения ошибки (или, по желанию после перехода на другие ветки и возврата обратно), даёте команду восстановления для продолжения вашей прерванной работы.

W – точка, где вы работали,
H — текущая HEAD,
I — точка коммита с исправлением выявленной тривиальной ошибки.

$ git stash “work in progress for foo feature”

Эта команда сохраняет все изменения “в тайнике” (stash), и возвращает рабочий каталог и индекс к HEAD. Затем вы можете исправить, тривиальную проблему и зафиксировать её решение.

... исправляем тривиальные ошибки ...
$ git commit -a -m “blorpl: typofix”

После этого вы можете вернуться к тому, что вы делали до git stash командой:

$ git stash apply


Описание

Microsoft Visual C++ (MSVC) — интегрированная среда разработки, включает в себя текстовый редактор , интерпретатор , средства автоматизации сборки и отладчик , также содержит средства инструменты для упрощения конструирования графического интерфейса пользователя . MSVS также включают браузер классов, инспектор объектов и диаграмму иерархии классов — для использования при объектно-ориентированной разработке ПО.

Поставляется либо как часть комплекта Microsoft Visual Studio , либо отдельно в виде функционально ограниченного комплекта Visual C++ Express Edition.

Источник: http://ru.wikipedia.org


Советы

1. Тормозящие окошки Toolbox, Solution Explorer и т.п.
Очень удобная и полезная функция "самоубирающихся" вспомогательных окон иногда бывает настоящим злом, особенно если на машине идет параллельно с работой в Visual Studio какой-то ресурсоемкий процесс. Чаще всего заторможенность при появлении этих окон связана с эффектом "плавного появления", отключив который можно добиться несколько большей производительности.
Решение: Tools -> Options -> General -> Убрать галку Animate environment tools

2. Долгая загрузка справочной системы по F1
Сама по себе справочная система загружается не моментально (особенно в первый раз). Можно ускорить процесс появления справки, если вас устроит информация из локальной установленной справки, просто отключив поиск online. В большинстве случаев локальной документации, при условии полной установки MSDN, более чем достаточно.
Решение: Tools -> Options -> Help -> Online -> Выбрать Try local only, not online

3. Быстрый переход к директории, содержащей исходные коды проекта
Если в Visual Studio 2005 у вас уже открыт проект и Вам необходимо выполнить нечто вне IDE, то открыть директорию проекта можно прямо из Visual Stuio.
Решение: щелкните правой кнопкой мыши по вкладке любого файла, открытого в редакторе и выберите Open Containing Folder

4. Изменяем шаблон заготовки метода в C#, генерируемого автоматически
Если вы в коде пишите имя еще не объявленного метода, то Smart Tag в Visual Studio предлагает создать заготовку метода. Если вас не устраивает стандартный вариант, то отредактируйте соответствующий snippet.
Решение: отредактировать файл \Program Files\Microsoft Visual Studio 8\VC#\Snippets\1033\Refactoring\MethodStub.snippet

5. Расширенные возможности рефакторинга
К сожалению, Visual Studio не поддерживает рефакторинга для VB проектов, да и опции рефакторинга для C# весьма скудны. Если вас не устраивает базовая функциональность, то вы можете использовать один из сторонних продуктов. По большому счету существует два лидера в этом направлении Refactor! Pro и Resharper.
Решение: Refactor! Pro от www.devexpress.com или Resharper от www.jetbrains.com

6. Возвращаем пропавшие менюшки обратно, убираем "левые"
Иногда после установки и удаления разных компонентов и надстроек Visual Studio остаются какие-то непонятные меню, а иногда наоборот, исчезают нужные. А так хотелось бы восстановить обратно вид Visua Studio с которым было так приятно работать. ДЛя этого существует утилита Import and Export Settings...
Решение: Настроив студию по своему вкусу вы можете экспортировать эти настройки и использовать их при переустановке системы, установки Visual Studio на другой машине, а также восстановлении Visual Studio после установки некачественных настроек. Так же, вы можете вернуть вид студии к предустановленным схемам для C#/VB/Web/C++ разработчика. И все это делается в меню Tools -> Import and Export Settings

7. Создание собственных шаблонов приложений
Например, вы разработали заготовку для создания plug-in'ов для некоторой системы и хотите добавить в список проектов Visual Studio шаблон plug-in'а. Для этого есть экспорт проектов как шаблонов!
Решение: File -> Export Template...

8. Удобное редактирование кода в полноэкранном режиме
Если вы также как и я большую часть времени проводите за написанием кода, а не за тасканием контролов мышью или перебиранием свойств в окне Properties, то, конечно, удобнее всего редактировать код в полноэкранном режиме. Главное - знать, как его вызвать!
Решение: Shift + Alt + Enter

9. Отладка хранимых процедур
Работает только в Visual Studio 2005 Professional и более высоких редакций.
Решение: Откройте диалоговое окно настроек проекта (щелчек правой кнопкой мыши по проекту в Solution Explorer -> Properties). В окне, для Web приложения выберите Start Options, а для Windows приложения выберите Debug. Установите галочку Enable SQL Debugging. Теперь можно ставить точки останова в хранимых процедурах.

10. Удобный способ вызвать Smart Tag
Вы написали в коде SqlConneciton, но не написали using System.Data.SqlClient? Не беда, Smart Tag услужливо поможет вам сделать это в два щелчка мышью. Единственная проблема, что не всегда в пылу написания кода удается легко и быстро попасть по значку Smart Tag. Удобнее это сделать с помощью клавиатуры, но вот засада - по умолчанию команда View.ShowSmartTag привязана к сочетанию Shift + Alt + F10. Не беда, сочетание клавиш можно поменять на более удобное.
Решение: Tools -> Customize -> Keyboard... -> в поле show command containing набрать ShowSmartTag и назначить боолее удобоваримое сочетание клавиш, например Alt + Ins, как это делаю я.


Установка MySQL на Linux

Для установки MySQL на Linux рекомендуется применять пакеты RPM. В настоящее время RPM для MySQL создаются на операционной системе SuSE Linux 7.3, но они должны работать также и для других версий Linux, которые поддерживают rpm и используют glibc.

Доступны для использования следующие RPM-файлы:

  • MySQL-server-VERSION.i386.rpm. Сервер MySQL. Если вам нужно только подключаться к серверу MySQL, запущенному на другом компьютере, этот файл не требуется. Обратите внимание, что выхода 4.0.10 этот пакет назывался MySQL-VERSION.i386.RPM.

  • MySQL-client-VERSION.i386.rpm.

    Стандартные клиентские программы MySQL. Установка этого пакета требуется всегда.

  • MySQL-bench-VERSION.i386.rpm.

    Тесты и контрольные задачи. Для файла требуется наличие модулей Perl и msql-mysql-modules.

  • MySQL-devel-VERSION.i386.rpm.

    Библиотеки и включаемые файлы, необходимые для компилирования других клиентов MySQL, таких как модули Perl.

  • MySQL-shared-VERSION.i386.rpm

    Этот пакет содержит динамические библиотеки (libmysqlclient.so*), нужные для некоторых языков программирования или приложений для того, чтобы работать с MySQL.

  • MySQL-embedded-VERSION.i386.rpm

    Встраиваемая библиотека сервера MySQL (MySQL 4.x и более новые).

  • MySQL-VERSION.src.rpm.

    Этот файл содержит исходный код для всех предыдущих пакетов. Файл также можно использовать для создания файлов RPM для других архитектур (например Alpha или SPARC).

Для просмотра всех файлов в пакете RPM выполните команду:

shell> rpm -qpl MySQL-VERSION.i386.rpm

Для выполнения стандартной минимальной установки запустите команду:

shell> rpm -i MySQL-server-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm

Для установки только клиентского пакета выполните команду:

shell> rpm -i MySQL-client-VERSION.i386.rpm

RPM помещает данные в /var/lib/mysql и создает соответствующие вхождения в /etc/init.d/ для автоматического запуска сервера во время начальной загрузки (в случае, если у вас имеется предыдущая инсталляция, можно создать копию ранее установленного файла запуска MySQL, чтобы изменения в нем не были утеряны.)

Если вы хотите установить MySQL RPM на старших версиях Linux, которые не поддерживают init-скрипты в /etc/init.d (непосредственно или посредством символической ссылки), вам следует создать символическую ссылку на старое расположение перед тем, как устанавливать RPM:

shell> cd /etc ; ln -s rc.d/init.d .

Однако, все современные поставки Linux должны поддерживать эту схему каталогов, т.к. это требование стандарта LSB (Linux Standard Base).

После установки RPM, mysqld должен заработать и вы можете сразу приступать к использованию MySQL.


Установка MySQL на Windows

Имеются два следующих типа дистрибутивов сервера MySQL для Windows:

  1. Бинарный дистрибутив, в состав которого входит программа установки; она устанавливает все, что нужно, так что можно сразу же запускать сервер.

  2. Дистрибутив исходного кода, в котором содержится весь код и файлы поддержки для создания исполняемых файлов с использованием компилятора VC++ 6.0.

    В общем случае следует отдавать предпочтение бинарному дистрибутиву.

Вам потребуется:

  • 32-разрядная операционная система Windows, такая как 9x, Me, NT, 2000 или XP. Под управлением семейства NT (NT, Windows 2000 и XP) сервер MySQL можно запускать как сервис. Если предполагается работать с таблицами размером более 4 Гб, необходимо установить MySQL на файловую систему NTFS или более новую. При создании таблиц не забывайте использовать MAX_ROWS и AVG_ROW_LENGTH.

  • Поддержка протокола TCP/IP.

  • Копия бинарного кода MySQL или дистрибутив для Windows, который может быть загружен с http://www.mysql.com/downloads/.

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

  • Архиватор ZIP для распаковки файла дистрибутива.

  • Достаточно места на жестком диске для распаковки, установки и создания баз данных в соответствии с вашими требованиями.

  • Если вы планируете подключаться к серверу MySQL через ODBC, то понадобится драйвер MyODBC.


Установка бинарного кода

  1. Если вы работаете на сервере NT/2000/XP, войдите в систему как пользователь с привилегиями администратора.

  2. Если вы производите модернизацию более ранней установки MySQL, то необходимо остановить сервер. Если сервер работает как сервис, то применяйте следующую команду:

    C:\> NET STOP MySQL

    В остальных случаях используйте:

    C:\mysql\bin> mysqladmin -u root shutdown

  3. Если вы хотите изменить исполняемый файл сервера (т.е. -max или -nt), необходимо также удалить сервис:

    C:\mysql\bin> mysqld-max-nt --remove

  4. Разархивируйте файл дистрибутива во временном каталоге.

  5. Запустите файл setup.exe, чтобы начать процесс установки. Если вы хотите установить программу в иной каталог, чем заданный по умолчанию c:\mysql, то используйте кнопку Browse для указания выбранного вами каталога.

  6. Завершите процесс установки.


Подготовка конфигурации MySQL для Windows

Начиная с версии MySQL 3.23.38, дистрибутив для Windows включает в себя как обычный бинарный код, так и бинарный код сервера MySQL-Max. Ниже приводится список различных серверов MySQL, которые можно использовать:

Бинарный код | Описание
mysqld | Скомпилирован с полным набором возможностей отладки и автоматической проверки выделения памяти, символических ссылок, таблиц InnoDB и BDB.
mysqld-opt | Оптимизированный бинарный код без поддержки транзакционных таблиц.
mysqld-nt | Оптимизированный бинарный код для NT/2000/XP с поддержкой именованных каналов. Можно запустить эту версию на Windows 9x/Me, но в этом случае не создаются именованные каналы и необходимо иметь установленный протокол TCP/IP.
mysqld-max | Оптимизированный бинарный код с поддержкой символических ссылок и таблиц InnoDB и BDB.
mysqld-max-nt | Подобен mysqld-max, но скомпилирован с поддержкой именованных каналов.

Начиная с версии 3.23.50, именованные каналы доступны только при запуске mysqld с --enable-named-pipe.

Все бинарные коды оптимизированы под процессор Pentium Pro, но должны работать на любом процессоре Intel >= i386.

При следующих обстоятельствах для того чтобы задать вашу конфигурацию MySQL будет необходимо использовать файл опций:

  • Если каталоги установки или данных отличаются от заданных по умолчанию местоположений (c:\mysql и c:\mysql\data).

  • Если вы хотите использовать один из следующих серверов:

    • mysqld.exe

    • mysqld-max.exe

    • mysqld-max-nt.exe

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

Обычно для редактирования файла опций my.ini можно использовать инструмент WinMySQLAdmin. В этом случае остальную часть данного раздела вы можете пропустить.

Существует два файла опций с одинаковыми функциями: my.cnf и my.ini. Однако во избежание недоразумений лучше всего использовать только один из них. Оба файла представляют собой простой текст. Если вы собираетесь использовать файл my.cnf, то его следует создать в корневом каталоге диска C, если my.ini - то в системном каталоге Windows (это обычно что-либо вроде C:\WINDOWS или C:\WINNT; его точное местоположение можно определить по значению переменной окружения windir). MySQL сначала ищет файл my.ini, а затем my.cnf.

Если на вашем компьютере используется начальный загрузчик, в котором диск C не является загрузочным диском, то следует работать только с файлом my.ini. Инструментальная программа WinMySQLAdmin, если она у вас применяется, также использует только файл my.ini (файл помощи с инструкциями по использованию этого инструмента находится в каталоге \mysql\bin).

Используя notepad.exe, создайте файл опций и отредактируйте раздел [mysqld], указав значения параметров basedir и datadir:

[mysqld]
# set basedir to installation path, e.g., c:/mysql
basedir=the_install_path
# set datadir to location of data directory,
# e.g., c:/mysql/data or d:/mydata/data
datadir=the_data_path

Следует учитывать, что в Windows имена путей должны указываться в файле опций с использованием предпочтительно прямых слешей, а не обратных. Если вы применяете обратные слеши, то их необходимо дублировать.

Чтобы использовать каталог данных, отличный от заданного по умолчанию c:\mysql\data, необходимо скопировать все содержимое каталога c:\mysql\data в новое местоположение.

Если вы хотите работать с транзакционными таблицами InnoDB, то необходимо вручную создать два новых каталога для хранения данных таблиц InnoDB и журнальных файлов - т.е. c:\ibdata и c:\iblogs. Помимо этого потребуется добавить несколько дополнительных строк в файле опций.

Если же работу с таблицами InnoDB вы не планируете, следует в файле опций добавьте опцию skip-innodb.

Теперь вы готовы тестировать запуск сервера.


Первый запуск сервера

Тестирование лучше всего производить из окна оболочки DOS, поскольку сообщения о состоянии, которые выводит сервер, появляются в окне DOS. Если с вашей конфигурацией что-нибудь не так, то при помощи этих сообщений будет легче идентифицировать и устранить любые проблемы.

Убедитесь, что находитесь в каталоге, где расположен сервер, затем введите следующую команду:

C:\mysql\bin> mysqld-max --standalone

При запуске сервера вы должны увидеть следующие сообщения:

InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: creating foreign key constraint system tables
InnoDB: foreign key constraint system tables created
011024 10:58:25 InnoDB: Started


Как получить MySQL

Информацию о текущей версии и инструкции по ее загрузке можно получить на домашней странице MySQL (http://www.mysql.com/).

Наш главный зеркальный сайт - http://mirrors.sunsite.dk/mysql/

Если вы заинтересованы в организации зеркального сайта MySQL, то можете анонимно зеркалировать нас программой rsync с адреса rsync://sunsite.dk/ftp/mirrors/mysql/. Просьба отправить нам письмо по адресу webmaster@mysql.com, чтобы уведомить нас о том, что ваш зеркальный сайт следует добавить в представленный ниже список.

Если возникнут проблемы с загрузкой с нашего главного сайта, пробуйте использовать один из следующих зеркальных сайтов.

О недействительных или устаревших зеркальных сайтах просьба сообщать по адресу webmaster@mysql.com.

For a complete upto-date list of MySQL web/download mirrors, see http://www.mysql.com/downloads/mirrors.html. There you will also find information about becoming a MySQL mirror site and how to report a bad or out-of-date mirror.


Проверка целостности пакетов с помощью MD5 Checksums или GnuPG

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

MySQL AB предоставляет два способа проверить пакет: контрольная сумма MD5 и криптографическая подпись с использованиемп GnuPG, GNU Privacy Guard.

Проверка контрольной суммы MD5

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

shell> md5sum <пакет>

Однако не все операционные системы поддерживают команду md5sum - на некоторых она просто называется md5, а в других она вовсе не поставляется. На Linux эта команда является частью GNU Text Utilities, которые доступны для множества разных платформ.

Вы можете загрузить исходный код по адресу http://www.gnu.org/software/textutils/. Если у вас уже установлен OpenSSL, вы также можете использовать команду openssl md5 <пакет>. Реализация md5 для DOS/Windows доступна по адресу http://www.fourmilab.ch/md5/.

Пример:

shell> md5sum mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
155836a7ed8c93aee6728a827a6aa153
                mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz

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

Множество зеркальных сайтов также предоставляют файл с именем MD5SUMS, который также содержит MD5 контрольные суммы всех файлов из каталога Downloads. Однако заметьте, что этот файл достаточно легко изменить и это не самый надежный метод проверки целостности пакета. Если вы в сомнениях, вы должны посмотреть на другие зеркала и сравнить увиденное.

Проверка подписи с использованием GnuPG

Гораздо более надежный метод проверки целостности пакета это использование криптографически сигнатур. MySQL AB использует ПО GNU Privacy Guard (GnuPG), открытая альтернатива весьма известному пакету Pretty Good Privacy (PGP) Фила Циммермана (Phil Zimmermann). См. http://www.gnupg.org/ и http://www.openpgp.org/ для более подробной информации про OpenPGP/GnuPG и как его получить и поставить на вашей системе. Большинство поставок Linux уже идут с GnuPG прямо в поставке.

Начиная с MySQL 4.0.10 (Февраль 2003), MySQL AB начала подписывать загружаемые пакеты с помощью GnuPG. Криптографические сигнатуры являются гораздо более надежным методом проверки целостности и аутентичности файла.

Для проверки подписи конкретного пакета, вам в первую очередь следует получить копию публичного ключа GPG <build@mysql.com>. Вы можете либо взять этот ключ прямо отсюда, либо взять его на http://www.keyserver.net/.

Key ID:
pub  1024D/5072E1F5 2003-02-03
     MySQL Package signing key (www.mysql.com) <build@mysql.com>
Fingerprint: A4A9 4068 76FC BD3C 4567  70C8 8C71 8D3B 5072 E1F5
Public Key (ASCII-armored):
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj
a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv
bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ
cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q
zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu
cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ
YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J
Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l
xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi
Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE
7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm
Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p
/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq
a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf
anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW
I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu
QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92
6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ
Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A
n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ==
=YJkx
-----END PGP PUBLIC KEY BLOCK-----

Вы можете импортировать этот ключ в ваш публичный репозитарий ключей (public keyring) используя gpg --import.
См. документацию на GPG для более подробной информации о том, как работать с публичными ключами.

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

Файл сигнатуры имеет расширение .asc. Например, сигнатура для mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz будет mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc. Удостоверьтесь, чтобы оба файла находятся в том же самом каталоге и затем запустите такую команду для проверки сигнатуры файла:

shell> gpg --verify <package>.asc
Example:
shell> gpg --verify mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
gpg: Warning: using insecure memory!
gpg: Signature made Mon 03 Feb 2003 08:50:39 PM MET using DSA key ID 5072E1F5
gpg: Good signature from
     "MySQL Package signing key (www.mysql.com) <build@mysql.com>"

Сообщение "Good signature" сообщает вам о том, что все в порядке.

Для пакетов RPM, отдельного файла подписи не предоставляется - пакеты RPM уже сами по себе имеют встроенную поддержку подписей GPG и контрольных сумм MD5. Вы можете проверить их такой командой:

shell> rpm --checksig <package>.rpm

Пример:

shell> rpm --checksig MySQL-server-4.0.10-0.i386.rpm
MySQL-server-4.0.10-0.i386.rpm: md5 gpg OK

Внимание: Если вы используете RPM 4.1 и он сообщает следующее:
(GPG) NOT OK (MISSING KEYS: GPG#5072e1f5)

(даже несмотря на то, что вы импортировали ключ в ваш публичный репозиторий ключей GPG, keyring) - вам следует импортировать ключ в репозиторий ключей RPM. RPM 4.1 больше не использует ваш репозиторий ключей GPG (и GPG вообще), но поддерживает свой репозиторий, поскольку RPM - это общесистемная утилита, а репозиторий ключей GPG - это специфичный для пользователя файл). Чтобы импортировать публичный ключ MySQL в RPM, используйте вот такую команду:

shell> rpm --import <pubkey>

Пример:

shell> rpm --import mysql_pubkey.asc

Если вдруг вы заметите что контрольные суммы MD5 или подпись GPG не совпадают, попробуйте в первую очередь загрузить соответствующий пакет еще один раз, может быть, даже с другого сервера. Если вы не сможете успешно удостовериться в целостности пакета, пожалуйста, сообщите нам о подобных инцидентах, включая полное имя пакета и адрес сайта, с которого вы пытались загрузить пакет, на адрес <webmaster@mysql.com> или <build@mysql.com>.


Операционные системы, поддерживаемые MySQL

Мы применяем GNU Autoconf, что дает возможность переносить MySQL на все современные системы с работающими потоками Posix и компилятором C++ (чтобы скомпилировать только код клиента, требуется только компилятор C++ без использования потоков). Для себя мы используем и разрабатываем программное обеспечение в основном на Sun Solaris (версий 2.5 - 2.7) и SuSE Linux версии 7.x.

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

  • AIX 4.x, 5.x с собственными потоками.

  • Amiga.

  • BSDI 2.x с пакетом MIT-pthreads.

  • BSDI 3.0, 3.1 и 4.x с собственными потоками.

  • DEC Unix 4.x с собственными потоками.

  • FreeBSD 2.x с пакетом MIT-pthreads.

  • FreeBSD 3.x и 4.x с собственными потоками.

  • HP-UX 10.20 с пакетом MIT-pthreads или пакетом DCE-threads.

  • HP-UX 11.x с собственными потоками. LinuxThreads 0.7.1+ или glibc 2.0.7+.

  • Mac OS X.

  • NetBSD 1.3/1.4 Intel и NetBSD 1.3 Alpha (требует GNU make).

  • OpenBSD > 2.5 с собственными потоками. OpenBSD < 2.5 с пакетом MIT-pthreads.

  • OS/2 Warp 3, FixPack 29 и OS/2 Warp 4, FixPack 4.

  • SGI Irix 6.x с собственными потоками.

  • Solaris 2.5 и выше с собственными потоками на SPARC и x86.

  • SunOS 4.x с пакетом MIT-pthreads. See

  • Caldera (SCO) OpenServer с последним портом пакета FSU Pthreads.

  • Caldera (SCO) UnixWare 7.0.1.

  • Tru64 Unix

  • Windows 9x, Me, NT, 2000 и XP.

Следует отметить, что не на всех платформах MySQL функционирует одинаково хорошо. Насколько подходит определенная платформа для высоконагружаемого многоцелевого сервера MySQL, определяется следующими факторами:

  • Общая стабильность потоковой библиотеки. Платформа может иметь отличную репутацию в других отношениях, но если в коде, который вызывается MySQL, потоковая библиотека нестабильна, то, даже если все остальное прекрасно, стабильность MySQL будет определяться стабильностью потоковой библиотеки.

  • Способность ядра и/или библиотеки потоков пользоваться преимуществом симметричной многопроцессорной обработки (SMP) на многопроцессорных системах. Другими словами, при создании процессом потока для этого потока должна быть возможность работать на ином центральном процессоре (CPU), чем исходный процесс.

  • Способность библиотеки ядра и/или потоков запускать много потоков, которые приобретают/освобождают синхронизирующий флаг в небольшой критической области, часто без излишних переключений контекста. Иными словами, если реализация pthread_mutex_lock() является очень ``уступающей'' время центрального процессора, это значительно вредит MySQL. Если не принять во внимание данное обстоятельство, то использование добавочных центральных процессоров сделает MySQL существенно медленнее.

  • Общая стабильность/производительность файловой системы.

  • Способность файловой системы работать с большими файлами вообще и работать с ними эффективно в случае больших таблиц.

  • Наш, т.е. разработчиков, уровень компетенции в том, что касается данной платформы. Для платформ, которые мы знаем хорошо, мы вводим в MySQL специфические для платформы оптимизации/исправления, доступные во время компиляции. Кроме того, мы можем также дать совет по оптимальной для MySQL конфигурации вашей системы.

  • Выполненный нами у себя объем тестирования подобных конфигураций.

  • Количество пользователей, успешно применяющих MySQL на данной платформе в подобных конфигурациях. Если это количество велико, то шансы получить некоторые специфические для данной платформы сюрпризы, намного меньше.

В соответствии с предыдущими критериями наилучшими платформами с этой точки зрения для функционирования MySQL являются: x86 под управлением SuSE Linux 7.1, с ядром 2.4 и ReiserFS (или любой подобный дистрибутив Linux) и SPARC под управлением Solaris 2.7 или 2.8. FreeBSD оказывается третьей, но мы в самом деле надеемся, что эта платформа войдет в число лучших, как только станет совершеннее потоковая библиотека. Мы также надеемся, что, с некоторого момента, мы сможем включить в высшую категорию все остальные платформы, на которых MySQL компилируется и функционирует нормально, но не с тем же уровнем стабильности и производительности. Это потребует некоторых усилий с нашей стороны в сотрудничестве с разработчиками компонентов операционных систем и библиотек, от которых зависит MySQL. Если вы заинтересованы в улучшении тех или иных компонентов, у вас есть возможность оказать влияние на их разработку и вы нуждаетесь в подробных инструкциях по поводу того, что нужно MySQL, чтобы работать лучше, пошлите письмо по адресу <internals@lists.mysql.com>.

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


Какую версию MySQL использовать

Во-первых, нужно принять решение о том, что именно вам требуется - самый свежий экспериментальный выпуск или последняя устойчивая версия:

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

  • Если же вы работаете со старой системой и желаете ее модернизировать, но хотите избежать возможных нестыковок при модернизации, то необходимо проводить замену на самую новую версию в той же ветви, которую вы используете (где только последний номер версии более новый, чем у вашей). В таких версиях мы стараемся исправлять только критические ошибки и делать только небольшие, относительно безопасные изменения.

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

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

  • Если необходимо инсталлировать MySQL в некотором явно заданном местоположении (стандартные бинарные поставки являются ``готовыми к запуску'' в любом месте, но, возможно, вам потребуется еще большая гибкость).

  • Чтобы удовлетворить различные требования пользователей, мы поставляем две разных бинарных версии: одна скомпилирована с обработчиками нетранзакционных таблиц (небольшой, быстрый бинарный код), а вторая сконфигурирована с наиболее важными возможностями расширения, такими, как поддерживающие транзакции таблицы. Обе версии компилируются из одного и того же исходного кода. Все собственные клиенты MySQL могут подключаться к обеим версиям.

    Бинарный дистрибутив расширенной версии MySQL маркируется суффиксом -max и конфигурируется с теми же опциями, что и mysqld-max.

    Если вы хотите использовать пакет RPM MySQL-Max, то сначала следует установить стандартный пакет MySQL RPM.

  • Если вам нужно сконфигурировать mysqld с некоторыми дополнительными свойствами, которые отсутствуют в стандартных бинарных дистрибутивах. Ниже приводится список наиболее распространенных дополнительных опций, которые, возможно, вы захотите использовать:

    • --with-innodb

    • --with-berkeley-db

    • --with-raid

    • --with-libwrap

    • --with-named-z-lib (Это делается для некоторых бинарных дистрибутивов)

    • --with-debug[=full]

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

    Если требуется получить более быстрый сервер MySQL, то можно перекомпилировать его с поддержкой только одной необходимой вам кодировки, использовать лучший компилятор (наподобие pgcc) или воспользоваться опциями компилятора, которые лучше оптимизированы для вашего процессора.

  • Если вы нашли ошибку и сообщили о ней команде разработчиков MySQL, то вам должны выслать патч, который следует применить к дистрибутиву исходного кода для исправления ошибки.

  • Если вы хотите читать (и/или модифицировать) исходный код MySQL (на C и C++), необходимо иметь дистрибутив исходного кода. Исходный код - это всегда лучшая документация. Дистрибутивы исходного кода также содержат больше тестов и примеров, чем бинарные дистрибутивы.

В системе наименований в MySQL используются номера выпусков, состоящие из трех чисел и суффикса. Например, выпуск mysql-3.21.17-beta интерпретируется следующим образом:

  • Первое число (3) служит для описания формата файлов. Все выпуски версии 3 имеют один и тот же формат файлов.

  • Второе число (21) представляет собой уровень выпуска. Обычно существует выбор из двух возможностей. Одна представляет выпуск стабильной ветви (в настоящее время 23) и вторая - экспериментальную ветвь (в настоящее время 4.0). Обычно обе ветви стабильны, но экспериментальная версия может обладать некоторыми причудами, возможно отсутствие документации на новые свойства, либо она может не компилироваться на некоторых системах.

  • Третье число (17) является номером версии в пределах уровня выпуска. Это число увеличивается для каждого нового дистрибутива. Обычно имеет смысл предпочесть самую последнюю версию для выбранного уровня выпуска.

  • Суффикс (beta) указывает на уровень стабильности данного выпуска. Возможны следующие суффиксы:

    • alpha указывает, что выпуск содержит большие разделы нового кода, не протестированного на 100%. Обнаруженные ошибки (обычно их нет) должны быть задокументированы в разделе ``Новости'' (News). В большинстве выпусков alpha присутствуют также новые команды и расширения. При работе над alpha-выпуском может происходить активная разработка, включающая значительные изменения кода, но перед выпуском все тестируется. В любом выпуске MySQL не должно быть известных ошибок.

    • beta означает, что весь новый код протестирован. Не добавляются никакие новые свойства, которые могли бы вызвать повреждения старого кода. Не должно быть никаких известных ошибок. Версия изменяется с alpha на beta тогда, когда никаких сообщений о критических ошибках в alpha-версии не поступает по меньшей мере в течение месяца и мы не планируем добавлять какие- либо новые свойства, которые могли бы понизить надежность прежних команд.

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

    • Если нет никакого суффикса, это означает, что данная версия запускалась на многих различных компьютерных системах без сообщений об ошибках, кроме ошибок, относящихся к специфике платформ; для нее допускается только исправление критических ошибок. Именно поэтому такой выпуск мы называем стабильным.

Все версии MySQL пропускаются через наши стандартные тесты и контрольные задачи, чтобы получить уверенность в том, что они надежны в применении. Так как стандартные тесты периодически дополняются, чтобы включить проверку обнаруженных новых ошибок и ситуаций, которые могут их вызвать, то набор тестов со временем становится лучше и лучше.

Отметим, что все выпуски протестированы по меньшей мере со следующими тестами:

  • Внутренний набор тестов

    Набор является частью производственной системы для заказчика. Этот набор включает много таблиц с сотнями мегабайт данных.

  • Набор тестов производительности MySQL

    Эти тесты работают с набором общеупотребительных запросов. Кроме того, они позволяют увидеть, действительно ли последний пакет оптимизаций делает код быстрее.

  • Тест crash-me

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

Существует еще один тест. Он заключается в том, что мы используем самую новую версию MySQL в нашей внутренней производственной среде по крайней мере на одной машине. Для работы с этой версией у нас есть более чем 100 гигабайт данных.


Схемы установки

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

Бинарный дистрибутив устанавливается путем его распаковки в выбранном вами месте установки (обычно /usr/local/mysql) и создает следующие каталоги:

Каталог | Содержание каталога
bin | Клиентские программы и сервер mysqld
data | Файлы журналов, базы данных
include | Включаемые (заголовочные) файлы
lib | Библиотеки
scripts | mysql_install_db
share/mysql | Файлы с текстами сообщений об ошибках
sql-bench | Тесты производительности

Дистрибутив исходного кода устанавливается после того, как вы сконфигурируете и скомпилируете его. По умолчанию на этапе установки файлы инсталлируются в каталог /usr/local в следующие подкаталоги:

Каталог | Содержание каталога
bin | Клиентские программы и скрипты
include/mysql | Включаемые (заголовочные) файлы
info | Документация в формате Info
lib/mysql | Библиотеки
libexec | Сервер mysqld
share/mysql | Файлы с текстами сообщений об ошибках
sql-bench | Тесты производительности и тест crash-me
var | Базы данных и файлы журналов

Внутри каталога установки схема расположения инсталляции исходного кода отличается от схемы установки бинарного дистрибутива в следующих отношениях:

  • Сервер mysqld устанавливается в каталог libexec, а не в bin.

  • Каталогом данных является var, а не data.

  • mysql_install_db устанавливается в каталоге /usr/local/bin, а не в /usr/local/mysql/scripts.

  • Каталогами заголовочных файлов и библиотек являются include/mysql и lib/mysql, а не include и lib.

Можно создать собственную бинарную установку из скомпилированного дистрибутива исходного кода. Для этого следует выполнить скрипт scripts/make_binary_distribution.


Как и когда выпускаются обновления

Развитие MySQL в MySQL AB происходит очень быстрыми темпами и мы стремимся к тому, чтобы результаты нашей работы стали доступны и другим пользователям MySQL. Мы стараемся сделать новый выпуск сразу же, как только в продукте появляются очень полезные свойства, которые, по нашему мнению, необходимы другим пользователям.

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

Загружать новый выпуск не обязательно. Информацию о том, действительно ли новый выпуск представляет собой именно то, что вам требуется, вы почерпнете из раздела ``Новости'' (News).

Наша политика в вопросах обновления MySQL заключается в следующем:

  • Для каждого небольшого обновления последняя цифра в строке версии увеличивается. При внесении существенно новых свойств или небольших несовместимостей с предыдущими версиями увеличивается второе число в строке версии. Если изменяется формат файлов, то увеличивается первая цифра.

  • Протестированные на устойчивость версии должны обычно появляться 1-2 раза в год, но если обнаруживаются небольшие ошибки, то выпускаются версии только с исправлениями ошибок.

  • Рабочие исправления к старым версиям должны появляться примерно каждые 1-8 недель.

  • Бинарные дистрибутивы для некоторых платформ мы будем делать для значительных выпусков. Бинарные дистрибутивы для других систем иногда создаются и другими людьми, но, как правило, не так часто.

  • Обычно мы делаем патчи доступными сразу же после локализации и исправления небольших ошибок. Они посылаются на <bugs@lists.mysql.com> и включаются в очередной выпуск.

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

  • Если по какой-либо случайности в выпуске окажется критическая ошибка, то мы сделаем новый выпуск как можно скорее. Мы хотели бы, чтобы нашему примеру и следовали и другие компании.

Текущим стабильным выпуском сейчас является версия 3.23; уже начата активную разработка версии 4.0. Ошибки в стабильной версии по-прежнему будут исправляться. Мы не верим в полное ``замораживание'', поскольку при этом упускаются исправления ошибок и вещи, которые ``должны быть сделаны''. ``Отчасти заморожено'' подразумевает, что мы можем добавить некоторые вещи, которые ``почти несомненно не окажут влияния ни на что из того, что уже работает''.

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


Бинарные коды MySQL, скомпилированные в MySQL AB

Компания MySQL AB в качестве услуги предоставляет набор бинарных (скомпилированных) дистрибутивов MySQL - они скомпилированы на нашем оборудовании или на вычислительных системах, к которым нам любезно предоставили доступ заказчики.

Эти дистрибутивы сгенерированы скриптом Build-tools/Do-compile, который компилирует дерево исходных кодов, и создает архив .tar.gz используя scripts/make_binary_distribution

Эти бинарники сконфигурированы и собраны с помощью следующих компиляторов и опций.

  • Linux 2.4.xx i386 с gcc 2.95.3

    CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2
  -mcpu=pentiumpro -felide-constructors" ./configure --prefix=/usr/local/mysql
  --with-extra-charsets=complex --enable-thread-safe-client
  --enable-local-infile --enable-assembler --disable-shared
  --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static

  • Linux 2.4.xx ia64 с ecc (Intel C++ Itanium Compiler 7.0)

    CC=ecc CFLAGS=-tpp1 CXX=ecc CXXFLAGS=-tpp1 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile

  • Linux 2.4.xx alpha с ccc (Compaq C V6.2-505 / Compaq C++ V6.3-006)

    CC=ccc CFLAGS="-fast -arch generic" CXX=cxx
  CXXFLAGS="-fast -arch generic -noexceptions -nortti" ./configure
  --prefix=/usr/local/mysql --with-extra-charsets=complex
  --enable-thread-safe-client --enable-local-infile
  --with-mysqld-ldflags=-non_shared --with-client-ldflags=-non_shared
  --disable-shared

  • Linux 2.2.xx sparc с egcs 1.1.2

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared

  • Linux 2.4.xx s390 с gcc 2.95.3

    CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static

  • Sun Solaris 2.8 sparc с gcc 3.2

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared

  • Sun Solaris 2.9 sparc с gcc 2.95.3

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-curses-libs=-lcurses --disable-shared

  • Sun Solaris 2.9 sparc с cc-5.0 (Sun Forte 5.0)

    CC=cc-5.0 CXX=CC ASFLAGS="-xarch=v9" CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -xarch=v9" CXXFLAGS="-noex -mt -D_FORTEC_ -xarch=v9" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --enable-thread-safe-client --disable-shared

  • IBM AIX 4.3.2 ppc с gcc 3.2.1

    CFLAGS="-O2 -mcpu=powerpc -Wa,-many " CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared

  • IBM AIX 5.1.0 ppc с gcc 3.2.1

    CFLAGS="-O2 -mcpu=powerpc -Wa,-many" CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --with-server-suffix="-pro" --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-innodb

  • HP-UX 10.20 pa-risc1.1 с gcc 3.1

    CFLAGS="-DHPUX -I/opt/dce/include -O3 -fPIC" CXX=gcc CXXFLAGS="-DHPUX -I/opt/dce /include -felide-constructors -fno-exceptions -fno-rtti -O3 -fPIC" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-pthread --with-named-thread-libs=-ldce --with-lib-ccflags=-fPIC --disable-shared

  • HP-UX 11.11 pa-risc2.0 с aCC (HP ANSI C++ B3910B A.03.33)

    CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

  • Apple MacOS X 10.2 powerpc с gcc 3.1

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

  • FreeBSD 4.7 i386 с gcc 2.95.4

    CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=not-used --disable-shared

Следующие бинарные поставки собраны на системах, предоставленных MySQL AB пользователями. Заметьте, что эти бинарные поставки предоставляются исключительно для удобства. Поскольку у MySQL AB нет полного контроля над этими системами, мы только можем дать ограниченную поддержку этих бинарных поставок.

  • SCO Unix 3.2v5.0.6 i386 с gcc 2.95.3

    CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc
  CXXFLAGS="-O3 -mpentium -felide-constructors" ./configure
  --prefix=/usr/local/mysql --with-extra-charsets=complex
  --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no
  --enable-thread-safe-client --disable-shared

  • Caldera Open Unix 8.0.0 i386 с CC 3.2

    CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared

  • Compaq Tru64 OSF/1 V5.1 732 alpha с cc/cxx (Compaq C V6.3-029i / DIGITAL C++ V6.1-027)

    CC="cc -pthread" CFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all" CXX="cxx -pthread" CXXFLAGS="-O4 -ansi_alias -fast -inline speed -speculate all -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-prefix=/usr/local/mysql --with-named-thread-libs="-lpthread -lmach -lexc -lc" --disable-shared --with-mysqld-ldflags=-all-static

  • SGI Irix 6.5 IP32 с gcc 3.0.1

    CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

Такие опции компиляции использовались для бинарных поставок MySQL AB в прошлом. Такие бинарные поставки более не обновляются, но опции компиляции мы сохранили здесь как реферативную информацию.

  • Linux 2.2.x с x686 с gcc 2.95.2

    CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex

  • SunOS 4.1.4 2 sun4c с gcc 2.7.2.1

    CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-assembler

  • SunOS 5.5.1 (and above) sun4u с egcs 1.0.3a or 2.90.27 or gcc 2.95.2 and newer

    CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex --enable-assembler

  • SunOS 5.6 i86pc с gcc 2.8.1

    CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure
  --prefix=/usr/local/mysql --with-low-memory
  --with-extra-charsets=complex

  • BSDI BSD/OS 3.1 i386 с gcc 2.7.2.1

    CC=gcc CXX=gcc CXXFLAGS=-O ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex

  • BSDI BSD/OS 2.1 i386 с gcc 2.7.2

    CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex

  • AIX 2 4 с gcc 2.7.2.2

    CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex

Каждый, кто обладает более оптимальными опциями для любой из вышеперечисленных конфигураций, в любое время может выслать их в список рассылки разработчиков по адресу <internals@lists.mysql.com>.

Дистрибутивы RPM для версии MySQL до 3.22 создавались силами пользователей. Однако начиная с версии 3.22, пакеты RPM собираются у нас в MySQL AB.

Если вы хотите скомпилировать отладочную версию MySQL, то следует добавить --with-debug или --with-debug=full к предыдущим строкам конфигурации и удалить любые опции -fomit-frame-pointer.


Установка бинарного дистрибутива MySQL

Для установки бинарного дистрибутива MySQL необходимы следующие инструментальные средства:

  • GNU gunzip для разархивирования дистрибутива.

  • Подходящий tar для распаковки дистрибутива. GNU tar известен как работающий, а tar разработки Sun - как имеющий проблемы.

Для Linux существует альтернативный метод установки с использованием дистрибутива RPM (RedHat Package Manager, менеджер пакетов RedHat).

Если вам придется столкнуться с проблемами, то, пожалуйста, при отправке вопросов на <mysql@lists.mysql.com> всегда пользуйтесь mysqlbug. Даже если ваша проблема не относится к числу ошибок, mysqlbug соберет системную информацию, которая поможет решать такие проблемы и другим. Без mysqlbug вы уменьшаете вероятность получить решение своей проблемы! mysqlbug можно найти в каталоге scripts после распаковки дистрибутива.

Для установки бинарного дистрибутива MySQL необходимо выполнить следующие основные команды:

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/safe_mysqld --user=mysql &

или

shell> bin/mysqld_safe --user=mysql &

если вы работаете с MySQL 4.x

Новых пользователей можно добавить, используя скрипт bin/mysql_setpermission, если установить модули Perl DBI и Msql-Mysql-modules.

Далее следует более детальное описание.

Для установки бинарного дистрибутива выполните приведенные ниже действия:

  1. Выберите каталог, в котором вы хотите распаковать дистрибутив, и откройте его. В последующих примерах мы распаковываем дистрибутив под /usr/local и создаем каталог /usr/local/mysql, в котором устанавливается MySQL. (Для выполнения дальнейших инструкций, следовательно, предполагается, что вы обладаете правами создания файлов в /usr/local. Если этот каталог защищен, то вы должны производить установку как пользователь root.)

  2. Получите файл дистрибутива. Бинарные дистрибутивы MySQL поставляются как сжатые архивы tar с именами вроде mysql-VERSION-OS.tar.gz, где VERSION представляет собой число (например 5.0.3-alpha), а OS указывает тип операционной системы, для которой предназначен данный дистрибутив (например pc-linux-gnu-i586).

  3. Если бинарный дистрибутив маркирован суффиксом -max, то это означает, что данный бинарный код поддерживает транзакционные таблицы и другие свойства.Отметим, что все бинарные дистрибутивы созданы из одного и того же дистрибутива исходного кода MySQL.

  4. Добавьте пользователя и группу для запуска mysqld как:

    shell> groupadd mysql
shell> useradd -g mysql mysql

    Приведенные команды добавляют группу mysql и пользователя mysql. Данный синтаксис для useradd и groupadd для различных версиях Unix может иметь некоторые различия. Эти команды могут также называться adduser и addgroup. При желании можно дать пользователю и группе вместо mysql другие имена.

  5. Задайте предназначенный для установки каталог:

    shell> cd /usr/local

  6. Распакуйте дистрибутив и создайте каталог установки:

    shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql

    Первая команда создает каталог с именем mysql-VERSION-OS, а вторая - устанавливает символическую ссылку на данный каталог. Это позволяет более просто ссылаться на каталог установки - как на /usr/local/mysql.

  7. Измените в каталоге установки:

    shell> cd mysql

    В каталоге mysql вы найдете несколько файлов и подкаталогов. Наиболее важными для целей установки являются подкаталоги bin и scripts.

    • bin

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

    • scripts

      Этот каталог содержит скрипт mysql_install_db, используемый для инициализации базы данных mysql, содержащей таблицы привилегий, в которых хранятся права доступа к серверу.

  8. Если вы предпочитаете использовать mysqlaccess и установить дистрибутив MySQL в каком-либо нестандартном месте, то необходимо изменить место, где mysqlaccess ожидает найти клиента mysql. Отредактируйте скрипт bin/mysqlaccess примерно на 18-й строке. Найдите строку, выглядящую примерно так:

    $MYSQL = '/usr/local/bin/mysql'; # путь к исполняемому клиенту mysql

    Измените путь для указания того места в системе, где действительно находится mysql. Если этого не сделать, то возникнет ошибка Broken pipe при запуске mysqlaccess.

  9. Создайте таблицы привилегий MySQL (необходимы только в том случае, если ранее MySQL не устанавливался):

    shell> scripts/mysql_install_db

    Отметим, что в версиях MySQL старше, чем 3.22.10, сервер MySQL запускался при запуске mysql_install_db. Сейчас это не так!

  10. Измените принадлежность бинарного кода пользователю root и принадлежность каталога данных пользователю, под которым будет запускаться mysqld, следующим образом:

    shell> chown -R root /usr/local/mysql/.
shell> chown -R mysql /usr/local/mysql/data
shell> chgrp -R mysql /usr/local/mysql/.

    Первая команда изменяет владельца данного файла на пользователя root, вторая - владельца каталога данных на пользователя mysql, а третья - группу на группу mysql.

  11. Если вы хотели бы, чтобы работа MySQL начиналась автоматически при начальной загрузке компьютера, то можно скопировать support-files/mysql.server в то место, где находятся файлы запуска вашей системы. Более подробную информацию можно найти в самом скрипте support-files/mysql.server.
    После того, как все это будет установлено, необходимо инициализировать и протестировать данный дистрибутив.

Запустить сервер MySQL можно с помощью следующей команды:

shell> bin/safe_mysqld --user=mysql &


Примечания к Linux

Приведенные ниже замечания о glibc будут полезны только для случая, когда вы собираете MySQL самостоятельно. Но обычно, если Linux работает на машине с архитектурой x86, гораздо лучше использовать наши бинарные файлы. Они линкуются с glibc, к которой применены наиболее удачные патчи, и с наиболее удачными опциями компилятора - все это сделано для того, чтобы программа была пригодной для работы на сильно нагруженном сервере. Поэтому если после прочтения данного раздела у вас возникнут сомнения относительно дальнейших действий, попробуйте сначала использовать бинарные файлы - возможно, они удовлетворят вашим требованиям. Если же окажется, что бинарные файлы вас не устраивают, то можно попробовать заняться собственноручной сборкой. Мы будем очень признательны за сообщение о том, почему вам пришлось отказаться от работы с нашими бинарниками, - это поможет нам в следующий раз собрать более удачную версию программы. Что же касается обычных пользователей, то для них даже при установке, рассчитанной на большое количество параллельных соединений и/или таблиц, превосходящих по объему ограничение в 2 Гб, наши бинарные файлы будут наилучшим вариантом выбора.

В операционной системе Linux MySQL использует LinuxThreads. Если у вас старая система Linux, в которой отсутствует glibc2, то прежде чем предпринимать попытку компиляции MySQL, необходимо установить LinuxThreads. Получить LinuxThreads можно по адресу http://www.mysql.com/downloads/os-linux.html.

Примечание: на Linux 2.2.14 и MySQL, установленных на многопроцессорных (SMP) системах, могут возникать некоторые непонятные проблемы. В таком случае мы рекомендуем как можно быстрее сделать апгрейд версии ядра до 2.4: оно станет гораздо более быстрым и устойчивым.

Необходимо отметить, что версии glibc до 2.1.1 включительно содержат фатальную ошибку в обработке pthread_mutex_timedwait, которая проявляется при использовании INSERT DELAYED. Поэтому мы рекомендуем не использовать INSERT DELAYED, пока не будет сделан апгрейд glibc.

Если планируется использовать более 1000 одновременных соединений, необходимо сделать некоторые изменения в LinuxThreads, пересобрать их и перелинковать MySQL с новой libpthread.a. Следует увеличить PTHREAD_THREADS_MAX в файле sysdeps/unix/sysv/linux/bits/local_lim.h до 4096 и уменьшить STACK_SIZE в linuxthreads/internals.h до 256 Kб.

Пути указаны относительно корневого каталога glibc. Заметим, что MySQL не будет устойчиво работать при 600-1000 соединениях, если размер STACK_SIZE останется по умолчанию 2 Mб.

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

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

cat /proc/sys/fs/file-max
cat /proc/sys/fs/dquot-max
cat /proc/sys/fs/super-max

В случае, если на машине установлено более 16 Mб памяти, к загрузочному скрипту (/etc/init.d/boot.local на SuSE) необходимо добавить записи наподобие следующих:

echo 65536 > /proc/sys/fs/file-max
echo 8192 > /proc/sys/fs/dquot-max
echo 1024 > /proc/sys/fs/super-max

Эти команды можно также запустить из командной строки от имени пользователя

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

Альтернативно, вы можете установить эти параметры при загрузке, используя утилиту sysctl, которая используется во множестве поставок Linux (SuSE также добавила ее, начиная с SuSE 8.0). Просто напишите такие значения в файл /etc/sysctl.conf:

# увеличить некоторые значения для MySQL
fs.file-max = 65536
fs.dquot-max = 8192
fs.super-max = 1024

Кроме того, необходимо добавить в /etc/my.cnf:

[safe_mysqld]
open-files-limit=8192

Добавление такой записи позволит MySQL создавать до 8192 соединений и файлов.

Размером стеков потоков в адресном пространстве управляет константа STACK_SIZE в LinuxThreads. Ее значение должно быть достаточно большим, чтобы хватило места стеку каждого потока, но достаточно малым, чтобы предотвратить попадание стеков некоторых потоков в область общих данных mysqld. К сожалению, опытным путем нам удалось обнаружить, что реализация mmap() на Linux в случае поступления запроса на выделение адреса, который уже используется, вместо возвращения сообщения об ошибке успешно освобождает все ранее выделенные области и обнуляет данные на всей странице. Поэтому безопасность использования mysqld или любого другого потокового приложения зависит от "джентльменского" поведения кода, создающего потоки. Пользователь должен принять меры для обеспечения достаточно малого количества выполняемых потоков в любой момент времени, чтобы стеки потоков не пересекались с динамически выделяемой памятью. В случае mysqld необходимо навязать это "джентльменское" поведение установкой переменной max_connection в разумных пределах.

Если вы собираете MySQL самостоятельно и не хотите заниматься патчами LinuxThreads, то необходимо установить значение max_connections так, чтобы оно не превышало 500. Это значение должно быть еще меньше, если у вас достаточно велик буфер ключей, большая таблица динамически выделяемой памяти или имеются другие причины, по которым mysqld занимает большие объемы памяти, а также в случае, если вы используете ядро 2.2 с патчами для 2 Гб. Если используются наши бинарные файлы или RPM версии не старше 3.23.25, то можно безопасно устанавливать max_connections равным 1500 - при условии, что буфер ключей или таблицы динамически выделяемой памяти имеют небольшие размеры. Чем меньше STACK_SIZE в LinuxThreads, тем больше потоков можно безопасно создать. Рекомендуемая нами величина составляет от 128K до 256K.

При использовании множества одновременных соединений вы можете пострадать от одной "особенности" ядра 2.2. Данная особенность заключается в том, что процесс штрафуется за ветвление или порождение дочерних процессов - чтобы предотвратить атаки ветвлением. Это приводит к неудачному масштабированию MySQL при увеличении количества одновременных соединений. По нашим данным, на однопроцессорных машинах из-за данной особенности создание потоков происходит очень медленно, что может привести к большим затратам времени на соединение с MySQL (до 1 минуты), и столько же может занять завершение соединения. Что же касается многопроцессорных систем, то на них наблюдалось постепенное снижение скорости по мере роста числа клиентов. Пока мы пытались найти решение проблемы, один из пользователей прислал патч к ядру, утверждая, что патч заметно улучшил работу его сайта. Патч доступен по адресу http://www.mysql.com/Downloads/Patches/linux-fork.patch. Мы провели достаточно обширное тестирование этого патча как на развивающейся, так и на промышленной версиях системы. Применение патча заметно улучшило производительность MySQL, не вызвав при этом никаких проблем, поэтому теперь мы рекомендуем его пользователям, которые до сих пор используют ядро 2.2 на сильно нагруженных серверах. Кроме того, эта проблема была решена в ядре 2.4, поэтому если вас не устраивает производительность системы, то, по-видимому, проще сделать ее апгрейд до 2.4, чем использовать патчи к ядру 2.2. При обновлении системы, помимо исправления этой ошибки, вы также получите возможность воспользоваться преимуществами SMP.

При тестировании MySQL на двухпроцессорной машине с ядром 2.4 мы обнаружили, что MySQL масштабируется гораздо лучше - фактически отсутствовало замедление обработки запросов вплоть до 1000 соединений, а фактор масштабируемости MySQL (который вычисляется как отношение максимальной производительности к производительности при работе с одним клиентом) достигал 180%. Подобные результаты мы наблюдали на четырехпроцессорной системе - фактическое отсутствие замедления при росте количества соединений до 1000 при факторе масштабируемости в 300%. Поэтому для интенсивно нагруженных серверов мы настоятельно рекомендуем ядро 2.4. Оказалось также, что для достижения максимума производительности на ядре 2.4 весьма важно запускать mysqld с наибольшим возможным приоритетом. Для этого следует добавить в скрипт safe_mysqld команду renice -20 $$. В наших тестах на четырехпроцессорной машине увеличение приоритета привело к повышению производительности на 60% при работе 400 клиентов.

В дополнение к этому мы сейчас занимаемся сбором информации о производительности MySQL с ядром 2.4 на четырех- и восьмипроцессорных системах. Если у вас есть доступ к таким системам и вы тестировали их производительность, пожалуйста, отправьте сообщение с результатами по адресу <docs@mysql.com> - мы добавим эти результаты в документацию.

Существует еще один нюанс, заметно влияющий на производительность

MySQL, особенно на многопроцессорных системах. В LinuxThreads в glibc-2.1 очень плохо реализованы mutex'ы для программ со множеством потоков, в которых mutex хранится непродолжительное время. Парадоксально, но факт: в случае, если на многопроцессорных системах собрать MySQL с немодифицированными LinuxThreads, то при удалении процессора во много раз увеличивается производительность. Для решения этой проблемы мы предлагаем патч к glibc 2.1.3 http://www.mysql.com/Downloads/Linux/linuxthreads-2.1-patch.

В glibc-2.2.2 MySQL версии 3.23.36 использует адаптивный mutex, который гораздо лучше даже ``патченного'' в glibc-2.3.1. Однако предупреждаем, что при некоторых условиях код mutex'а в glibc-2.2.2 "закручивается" (overspin), а это ухудшает производительность MySQL. Шансы возникновения такого события можно понизить, если повысить приоритет выполнения mysqld. Можно также исправить "закручивание" с помощью патча, доступного по адресу http://www.mysql.com/Downloads/Linux/linuxthreads-2.2.2.patch. Он содержит в себе коррекцию "закручивания", максимальное количество потоков и размеры стека - все вместе. Необходимо применить его в каталоге linuxthreads командой patch -p0 </tmp/linuxthreads-2.2.2.patch. Мы надеемся, что данный патч будет в некотором виде включен в следующие выпуски glibc-2.2. В любом случае - если вы линкуете с использованием библиотеки glibc-2.2.2, то пока что необходимо исправлять STACK_SIZE и PTHREAD_THREADS_MAX. Мы не теряем надежду, что в будущем значения по умолчанию будут приведены к более приемлемым для сборки интенсивно нагруженного MySQL величинам, так что самостоятельная сборка сведется к выполнению ./configure; make; make install.

Вышеупомянутые патчи мы рекомендуем использовать только для создания специальной статической версии libpthread.a, а последнюю - применять только для статического линкования MySQL. Мы уверены, что для MySQL эти патчи безопасны и заметно улучшают его производительность, но относительно других приложений данных нет. Линкуя другие приложения с ``патченной'' версией библиотеки или собирая ее динамическую версию и устанавливая ее на свою систему, вы осознанно идете на риск по отношению к другим приложениям, использующим LinuxThreads.

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

Существует одна известная проблема с бинарным дистрибутивом, касающаяся старых систем Linux, в которых используется libc (таких как RedHat 4.x или Slackware). Она проявляется в виде некоторых некритичных проблем с разрешением имен.

При использовании LinuxThreads одновременно работают как минимум три процесса. По сути это потоки. Один поток управляет LinuxThreads, один - обрабатывает соединения и еще один - обрабатывает различные сигналы.

Заметим, что ядро Linux и библиотека LinuxThreads по умолчанию могут поддерживать только 1024 потока. Это значит, что может существовать не более 1021 соединения с MySQL на системе, к которой не применялись патчи. Информацию о том, как обойти это ограничение, можно найти на странице http://www.volano.com/linuxnotes.html.

Если по результату работы команды ps вы видите, что mysqld прекратил работу,

то обычно причиной этого является либо обнаружение ошибки в MySQL, либо испорченная таблица

Если при получении сигнала SIGSEGV mysqld просто умирает, то для получения образа памяти (core dump) на Linux можно запустить mysqld с опцией --core-file. Заметим, что при этом вам, возможно, придется увеличить размер допустимого объема файла образа памяти путем добавления строки ulimit -c 1000000 в safe_mysqld или запуском safe_mysqld с опцией --core-file-size=1000000

Если при линковании собственного MySQL-клиента возникла ошибка:

ld.so.1: ./my: fatal: libmysqlclient.so.4:
open failed: No such file or directory

то проблему можно обойти одним из следующих способов:

  • линковать клиент с одним из флагов: -Wl,r/path-libmysqlclient.so. (вместо -Lpath);

  • скопировать libmysqclient.so в /usr/lib;

  • добавить путь к каталогу, в котором находится libmysqlclient.so, к переменной окружения LD_RUN_PATH перед запуском клиента.

Если вы используете компилятор Fujitsu (fcc / FCC), то возможны некоторые проблемы компиляции MySQL поскольку заголовки в Linux в значительной степени ориентированы на gcc.

Данная конфигурация должна работать с fcc/FCC:

CC=fcc CFLAGS="-O -K fast -K lib -K omitfp -Kpreex -D_GNU_SOURCE \
-DCONST=const -DNO_STRTOLL_PROTO" CXX=FCC CXXFLAGS="-O -K fast -K lib \
-K omitfp -K preex --no_exceptions --no_rtti -D_GNU_SOURCE -DCONST=const \
-Dalloca=__builtin_alloca -DNO_STRTOLL_PROTO \
'-D_EXTERN_INLINE=static __inline'" ./configure --prefix=/usr/local/mysql\
--enable-assembler --with-mysqld-ldflags=-all-static --disable-shared \
--with-low-memory


Примечания к бинарным дистрибутивам Linux

Для работы MySQL необходим Linux версии не ниже 2.0.

Предупреждение: По данным, полученным нами от некоторых пользователей MySQL, на Linux с ядром 2.2.14 имеются серьезные проблемы с устойчивостью работы MySQL. Если вы используете это ядро, необходимо обновить его до версии 2.2.19 или выше, либо до ядра версии 2.4. Аргументы в пользу 2.4 становятся еще более весомыми при использовании многопроцессорной системы, поскольку переход на эту версию ядра приводит к заметному увеличению скорости.

Как правило, бинарный дистрибутив линкуется с опцией -static, а это значит, что обычно нет необходимости беспокоиться о том, какая версия системных библиотек у вас установлена. Не требуется также устанавливать LinuxThreads. Размер программы, слинкованной с опцией -static, обычно больше в сравнении с версией, собранной динамически, однако скорость работы у нее выше (3-5%). Существует, однако, одна проблема. Она заключается в том, что со статически слинкованными программами невозможно использовать определяемые пользователем функции (user-definable function, UDF). Если вы собираетесь писать или использовать UDF'ы (это информация, касающаяся только программистов на C или C++), вам следует собственноручно собрать MySQL с использованием динамического линкования.

При использовании систем, базирующихся на libc (в отличие от glibc2-систем), могут возникать некоторые проблемы с разрешением имен удаленных компьютеров и использованием getpwnam() с бинарной версией (это происходит из-за того, что, к сожалению, glibc зависит от некоторых внешних библиотек при разрешении имен и использовании getpwent(), даже при сборке с опцией -static). В таком случае при запуске mysql_install_db возможно появление следующего сообщения об ошибке:

Sorry, the host 'xxxx' could not be looked up

Или же - при запуске mysqld с опцией --user - сообщение об ошибке может быть таким:

getpwnam: No such file or directory

Эту проблему можно решить одним из следующих способов:

  • загрузить и установить дистрибутив MySQL с исходными текстами (RPM или дистрибутив tar.gz).

  • Запустить mysql_install_db --force, чтобы избежать проверки resolveip в mysql_install_db. Оборотной стороной такого подхода является невозможность работать с именами машин в таблицах прав доступа - вместо них следует должны использовать IP-адреса (за исключением localhost). Если у вас старая поставка MySQL, которая не поддерживает ключ --force, то нужно просто удалить в редакторе проверку resolveip из mysql_install.

  • Запускать mysqld с помощью команды su вместо использования опции --user.

RPM и бинарные файлы MySQL для Linux на архитектуре Intel оптимизированы для достижения наибольшей возможной скорости работы. Мы всегда стараемся использовать компиляторы, которые дают наиболее быстрый и устойчивый код.

Поддержка Perl в MySQL требует Perl версии не ниже 5.004_03.

На некоторых Linux версии 2.2 при попытке создать большое количество новых соединений с сервером mysqld через TCP/IP вы можете получить сообщение об ошибке Resource temporarily unavailable (Ресурс временно недоступен).

Проблема заключается в задержке между закрытием сокета TCP/IP и реальным его освобождением системой в Linux. Поскольку существует ограниченное количество областей для поддержки TCP/IP, вы получите вышеназванную ошибку, если попытаетесь создать слишком много новых соединений TCP/IP на протяжении короткого отрезка времени (нечто подобное происходит при запуске теста на производительность MySQL test-connect поверх TCP/IP).

Об этой проблеме мы несколько раз сообщали в различные списки рассылки по Linux, однако удачного решения получить не удалось.

Единственное известное 'решение' данной проблемы заключается в том, что ваши клиенты должны работать с постоянными соединениями или использовать сокеты (в случае, если клиентская и серверная части находятся на одной машине). Остается надеяться, что эта проблема будет решена в ядре Linux 2.4.


Заметки по поводу Linux x86

Для MySQL необходимо наличие libc версии 5.4.12 или выше. Известно, что MySQL работает с libc 5.4.46, а также с glibc версии 2.0.6 и более новыми. Существуют некоторые проблемы с glibc из пакетов в RedHat, поэтому в случае возникновения проблем следует проверить, нет ли обновлений данной версии! Известно, что glibc из RPM версий 2.0.7-19 и 2.0.7-29 работоспособны.

Если вы используете Red Hat 8.0 или новую glibc 2.2.x вам следует запускать mysqld с опцией --thread-stack=192K. Если вы этого не сделаете, то mysqld будет умирать в gethostbyaddr() потому что новая glibc требует > 128Кбайт памяти стека для этого вызова. Такой размер стека установлен по умолчанию в MySQL 4.0.10 и более новых.

При использовании для сборки MySQL gcc 3.0 и выше библиотеку libstdc++v3 необходимо установить до сборки; если вы не сделаете этого, то получите сообщение об отсутствии символа __cxa_pure_virtual во время линкования!

На некоторых старых версиях Linux configure может приводить к ошибкам такого типа:

Syntax error in sched.h. Change _P to __P in the /usr/include/sched.h file.
See the Installation chapter in the Reference Manual.

Сделайте именно то, о чем говорится в сообщении об ошибке - добавьте дополнительный символ подчеркивания к имени макроса _P, которое имеет только один символ подчеркивания в начале, и попробуйте выполнить те же действия еще раз.

При компиляции могут выводиться некоторые предупреждения. Ниже приведены те из них, которые можно проигнорировать:

mysqld.cc -o objs-thread/mysqld.o
mysqld.cc: In function `void init_signals()':
mysqld.cc:315: warning: assignment of negative value `-1' to `long unsigned int'
mysqld.cc: In function `void * signal_hand(void *)':
mysqld.cc:346: warning: assignment of negative value `-1' to `long unsigned int'

mysql.server находится либо в каталоге share/mysql каталога инсталляции MySQL, либо в каталоге support-files каталога дерева исходных текстов MySQL.

Возникновение следующей ошибки при линковании mysqld говорит о некорректной установке libg++.a:

/usr/lib/libc.a(putc.o): In function `_IO_putc':
putc.o(.text+0x0): multiple definition of `_IO_putc'

Использования libg++.a можно избежать путем запуска configure следующим образом:

shell> CXX=gcc ./configure


Запуск MySQL на Windows NT, 2000 или XP

Для того чтобы MySQL работал с TCP/IP на Windows NT 4, необходимо установить Service Pack 3 (или выше)!

Обычно MySQL устанавливается на Windows NT/2000/XP как сервис. В случае, если сервер уже работает, необходимо сначала завершить его работу при помощи следующей команды:

C:\mysql\bin> mysqladmin -u root shutdown

Это вызов программы администрирования MySQL от имени пользователя root, который по умолчанию соответствует пользователю Administrator в системе привилегий MySQL. Обратите внимание: система привилегий MySQL абсолютно независима от каких-либо аккаунтов пользователей в системе Windows.

Теперь установим сервис сервера:

C:\mysql\bin> mysqld-max-nt --install

Если требуются какие-либо опции, они должны быть определены, как ``Start parameters'' в инструментальной программе Services системы Windows перед запуском сервиса MySQL.

Доступ к инструментальной программе Services (Windows Service Control Manager) можно получить в Control Panel (в Administrative Tools в Windows 2000). Рекомендуется закрывать Services при выполнении операций --instal или --remove - это предотвратит возникновение некоторых ошибок неизвестной природы.

Отметим, что начиная с версии 3.23.44 MySQL имеется возможность альтернативной установки сервиса - в режиме Manual (если вам не требуется автоматический запуск сервиса при загрузке операционной системы):

C:\mysql\bin> mysqld-max-nt --install-manual

Сервис устанавливается под именем MySQL. Сразу же после установки он может быть запущен при помощи инструментальной программы Services или командой NET START MySQL.

После запуска работа mysqld-max-nt может быть завершена при помощи mysqladmin из инструментальной программы Services или командой NET STOP MySQL.

Если MySQL функционирует в качестве сервиса, то операционная система автоматически завершает работу MySQL-сервиса при программном завершении работы компьютера. В версиях MySQL < 3.23.47 Windows ожидает всего лишь несколько секунд завершения остановки, после чего уничтожает процесс сервера базы данных, если превышено время ожидания (что может быть потенциальной причиной возникновения проблем). Например, при следующем запуске обработчик таблицы InnoDB должен выполнять восстановление после аварийного завершения. Начиная с MySQL версии 3.23.48, Windows ожидает завершения процесса MySQL-сервера дольше. Если вы считаете, что этого времени для вашей версии недостаточно, безопаснее запускать MySQL-сервер не как сервис, а из командной строки и завершать его работу командой mysqladmin shutdown.

В Windows NT (но не в Windows 2000/XP) существует проблема, которая заключается в том, что система по умолчанию ожидает окончания работы сервиса только 20 секунд, после чего уничтожает процесс сервиса. Это заданное по умолчанию значение можно увеличить с помощью редактора Registry (Реестра), запустив \winnt\system32\regedt32.exe и отредактировав значение WaitToKillServiceTimeout в записи HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Следует задать другое, большее значение в миллисекундах, например 120000, чтобы Windows NT ожидала 120 секунд.

Необходимо заметить, что при работе в качестве сервиса mysqld-max-nt не имеет доступа к консоли, а следовательно, невозможно увидеть его сообщения. Информация об ошибках находится в файле c:\mysql\data\mysql.err.

Если вы столкнулись с проблемами установки mysqld-max-nt в качестве сервиса, попробуйте запустить его с указанием полного пути:

C:\> C:\mysql\bin\mysqld-max-nt --install

Если это не поможет, можно принудить mysqld-max-nt стартовать соответствующим образом, исправив путь в Registry!

Если вы не хотите запускать mysqld-max-nt в качестве сервиса, его можно запустить следующим образом:

C:\> C:\mysql\bin\mysqld-max-nt --standalone
или
C:\> C:\mysql\bin\mysqld --standalone --debug

В случае последнего варианта вы получите отладочную информацию в C:\mysqld.trace


Работа MySQL в среде Windows

MySQL поддерживает TCP/IP на всех Windows-системах и именованные каналы в среде NT/2000/XP. По умолчанию MySQL использует именованные каналы для соединений с локальной машиной в среде NT/2000/XP и TCP/IP - во всех остальных случаях, если на клиентской машине установлен TCP/IP. Имя машины определяет используемый протокол:

Имя машины | Протокол
NULL(отсутствует) | На NT/2000/XP пытается установить соединение через именованные каналы; если это не работает, используется TCP/IP. На 9x/Me используется TCP/IP.
. | Именованные каналы.
localhost | Соединение TCP/IP с локальной машиной
имя удаленной машины | TCP/IP

Чтобы заставить MySQL-клиента использовать именованные каналы, следует добавить опцию --pipe или задать . в качестве имени машины для соединения. Для определения имени канала используйте опцию --socket. В MySQL 4.1 вам следует использовать опцию --protocol=PIPE.

Отметим, что начиная с версии 3.23.50 именованные каналы применяются только в случае, если mysqld запущен с опцией --enable-named-pipe. Это вызвано тем, что у некоторых пользователей применение именованных каналов приводило к прекращению работы сервера MySQL.

Для проверки работоспособности MySQL нужно выполнить следующие команды:

C:\> C:\mysql\bin\mysqlshow
C:\> C:\mysql\bin\mysqlshow -u root mysql
C:\> C:\mysql\bin\mysqladmin version status proc
C:\> C:\mysql\bin\mysql test

Если при ответе mysqld на входящие соединения под Windows 9x/Me возникают задержки, то это, скорее всего, вызвано проблемами с вашим DNS. В таком случае следует запускать mysqld с опцией --skip-name-resolve и в таблицах привилегий MySQL использовать только localhost и IP-адреса. Избежать работы с DNS при соединении с MySQL-сервером mysqld-nt, работающим под NT/2000/XP, можно путем применения опции --pipe, которая задает использование именованных каналов. Сказанное выше справедливо для большинства клиентов MySQL.

Существует две версии программы работы с MySQL из командной строки:

Бинарный файл | Описание
mysql | Собран ``родными'' средствами Windows, обеспечивает весьма ограниченные возможности редактирования текста.
mysqlc | Собран с использованием компилятора и библиотек Cygnus GNU, которые обеспечивают редактор readline.

Если вы хотите использовать mysqlc.exe, сначала необходимо скопировать C:\mysql\lib\cygwinb19.dll в системный каталог Windows (\windows\system или в другое аналогичное место).

По умолчанию всем пользователям Windows предоставляются полные права доступа ко всем базам данных без ввода пароля. Чтобы обеспечить большую безопасность MySQL, необходимо задать пароль для каждого пользователя и удалить запись в таблице mysql.user, содержащую Host='localhost' и User=' `.

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

C:\> C:\mysql\bin\mysql mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User=' ';
mysql> QUIT
C:\> C:\mysql\bin\mysqladmin reload
C:\> C:\mysql\bin\mysqladmin -u root password your_password

Если вы хотите остановить сервер mysqld после того, как установлен пароль для пользователя root, нужно использовать команду:

C:\> mysqladmin --user=root --password=your_password shutdown

Если у вас работает старая испытательная версия MySQL 3.21 под Windows, вышеприведенная команда не выполнится и приведет к сообщению об ошибке: parse error near `SET password'. Для решения этой проблемы следует выполнить загрузку и обновление до последней доступной бесплатно версии MySQL.

В текущей версии MySQL вы можете легко добавлять новых пользователей и изменять их привилегии при помощи команд GRANT и REVOKE.


Соединение с MySQL на удаленной машине под Windows с использованием SSH

В этом разделе приведены замечания относительно получения безопасного соединения с удаленным MySQL-сервером с использованием SSH. Автором этих замечаний является Дэвид Карлсон (David Carlson) - <dcarlson@mplcomm.com>:

  • Установите SSH-клиент на своей Windows-системе. С точки зрения пользователя, лучшим небесплатным клиентом из числа мне известных является клиент SecureCRT по адресу http://www.vandyke.com/. Другой возможный вариант - f-secure от http://www.f-secure.com/. Есть и бесплатные версии - их можно получить на Google по адресу http://directory.google.com/Top/Computers/Security/Products_and_Tools/CryptographySSH/Clients/Windows/

  • Запустите Windows-клиент SSH. Установите Host_Name=адрес_своего_MySQL-сервера. Задайте userid=свой_userid для соединения со своим сервером (может отличатся от вашего имени пользователя/пароля для MySQL).

  • Задайте перенаправление портов или организуйте удаленный форвардинг (нужно сделать следующие установки: локальный порт - 3306, удаленный хост - адреса_вашего_mysql_сервера, удаленный порт - 3306) либо локальный форвардинг (порт - 3306, хост - localhost, удаленный порт - 3306).

  • Сохраните выполненные установки, иначе вам придется в следующий раз делать все заново.

  • Соединитесь со своим сервером, используя только что созданный вами SSH-сеанс.

  • Запустите в Windows какое-либо ODBC-приложение (например Access).

  • Создайте в Windows новый файл и ссылку на MySQL, используя ODBC-драйвер обычным образом, за исключением того, что вместо имени вашего MySQL-сервера следует указывать localhost, а не yourmysqlservername.

В результате этих действий вы должны получить ODBC-соединение со своим MySQL-сервером, защищенное при помощи SSH-кодирования.


Распределение данных в Windows между несколькими различными дисками

Начиная с MySQL версии 3.23.16 серверы mysqld-max и mysql-max-nt в дистрибутиве MySQL компилируются с флагом -DUSE_SYMDIR. Это обеспечивает возможность устанавливать базу данных на другом диске путем добавления символической ссылки на нее (подобно тому, как работают символические ссылки в Unix).

В Windows для создания символической ссылки на базу данных создается файл, содержащий путь к каталогу, на который указывает ссылка. Этот файл сохраняется в каталоге mysql_data под именем database.sym. Отметим, что такая символическая ссылка будет работать только в случае отсутствия каталога mysql_data_dir\database.

Например, если каталог данных MySQL находится в C:\mysql\data, а вы хотите разместить базу данных foo в каталоге D:\data\foo, необходимо создать файл C:\mysql\data\foo.sym, содержащий текст D:\data\foo\. После этого все таблицы, создаваемые в базе данных foo, будут создаваться в D:\data\foo.

Отметим, что из-за потерь в скорости при открытии каждой таблицы в MySQL не включается использование символических ссылок по умолчанию, даже если вы собрали MySQL с поддержкой данной возможности. Чтобы обеспечить возможность разрешения символических ссылок, вы должны поместить в свой файл my.cnf или my.ini следующие строки:

[mysqld]
use-symbolic-links

В MySQL 4.0 использование символических ссылок по умолчанию будет включено. Если вы хотите запретить эту возможность, то для данной версии MySQL необходимо использовать опцию skip-symlink.


Сравнительные характеристики MySQL под Windows и под Unix

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

  • Windows 95 и потоки

    При создании каждого потока в Windows 95 теряется приблизительно 200 байтов основной памяти. А поскольку каждое соединение с MySQL создает новый поток, на Windows 95 не следует запускать mysqld на продолжительное время, если ваш сервер обрабатывает много соединений! Другие версии Windows не подвержены этой ошибке.

  • Параллельное чтение

    Для обработки смешанных запросов SELECT и INSERT в MySQL используются функции pread() и pwrite(). В настоящее время для эмуляции pread()/pwrite() мы применяем mutex'ы. Однако в наши планы на будущее входит замена интерфейса файлового уровня виртуальным интерфейсом, чтобы иметь возможность использовать интерфейс readfile()/writefile() на NT/2000/XP - с целью ускорения работы. В текущей реализации число одновременно открытых в MySQL файлов не может быть больше 1024; это означает, что вы не сможете создать такое же количество одновременных соединений с MySQL в NT/2000/XP, как в Unix.

  • Чтение с блокировкой

    В MySQL для каждого соединения используется чтение с блокировкой. Это означает, что:

    • Соединение не будет автоматически закрыто по истечении 8 часов, как в случае Unix-версии MySQL.

    • В случае ``зависания'' соединения невозможно оборвать его без остановки MySQL.

    • mysqladmin kill не работает для ``спящих'' соединений

    • mysqladmin shutdown не может отработать до тех пор, пока существуют ``спящие'' соединения.

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

  • DROP DATABASE

    Нельзя удалить базу данных, если она используется каким-либо потоком.

  • Остановка MySQL из диспетчера задач

    В Windows 95 нельзя остановить MySQL из диспетчера задач или с помощью инструментальной программы shutdown; это можно сделать с помощью mysqladmin shutdown.

  • Имена, не зависящие от регистра символов

    Имена файлов в Windows не зависят от регистра символов, поэтому имена таблиц и баз данных в MySQL под Windows также не зависимы от регистра. Единственное ограничение заключается в том, что имена баз данных и таблиц в пределах одного выражения должны задаваться с использованием одинакового регистра символов.

  • Символ каталогов '\'

    Компоненты путей в Windows 95 разделяются символом '\', который также является символом экранирования в MySQL. Если вы используете LOAD DATA INFILE или SELECT ... INTO OUTFILE, символ '\' необходимо вводить дважды:

    mysql> LOAD DATA INFILE "C:\\tmp\\skr.txt" INTO TABLE skr;
mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;

    В качестве альтернативы можно использовать имена файлов Unix-стиля:

    mysql> LOAD DATA INFILE "C:/tmp/skr.txt" INTO TABLE skr;
mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;

  • Ошибка can't open named pipe (невозможно открыть именованный канал)

    При использовании MySQL версии 3.22 на NT с самым свежим клиентом mysql можно получить следующее сообщение об ошибке:

    error 2017: can't open named pipe to host: . pipe...

    Это происходит из-за того, что в данной версии MySQL на NT именованные каналы применяются по умолчанию. Чтобы избежать таких ошибок, следует использовать с новым клиентом MySQL флаг --host=localhost или создать файл флагов C:\my.cnf, содержащий следующие строки:

    [client]
host = localhost

    Начиная с версии 3.23.50 именованные каналы используются только в случае, если mysqld запущен с флагом --enable-named-pipe.

  • Ошибка access denied for user (доступ пользователю запрещен)

    Если вы получили сообщение об ошибке Access denied for user: `some-user@unknown' to database `mysql' при попытке доступа к MySQL-серверу, находящемуся на той же машине, с которой происходит доступ, это значит, что MySQL не может правильно определить адрес вашей машины. Для решения данной проблемы следует создать файл \windows\hosts, содержащий:

    127.0.0.1 localhost

  • ALTER TABLE

    При выполнении оператора ALTER TABLE доступ к таблице для других потоков блокируется. Именно поэтому Windows не может удалить файл, который используется другим потоком (возможно, в будущем мы найдем какой-нибудь способ обойти эту проблему). Выполнение DROP TABLE над таблицей, входящей в состав сводной таблицы MERGE, не будет работать в Windows, так как отображение таблицы, которое выполняет обработчик MERGE, скрыто от верхнего уровня MySQL. Поскольку в Windows нельзя удалять открытые файлы, вначале следует сбросить все MERGE-таблицы (используя FLUSH TABLES) или удалить все MERGE-таблицы перед удалением таблицы. Мы исправим эту ошибку одновременно с введением оператора VIEW. Операторы DATA DIRECTORY и INDEX DIRECTORY в CREATE TABLE в Windows игнорируются, поскольку Windows не поддерживает символические ссылки.

Ниже приведены некоторые открытые вопросы для всех, кто захочет помочь нам в работе над выпусками под Windows:

  • Требуется создать однопользовательский сервер MYSQL.DLL. Он должен включать все возможности стандартного MySQL-сервера, за исключением потоков. Это заметно упростит использование MySQL в приложениях, которые не нуждаются в настоящем клиент-серверном взаимодействии и в доступе к базе с других машин.

  • Нужно было бы добавить в инсталляционный пакет нескольких симпатичных иконок для старта и остановки MySQL.

  • При регистрации mysqld в качестве сервиса с флагом --install (на NT) было бы неплохо иметь возможность добавлять флаги по умолчанию к командной строке. Сейчас эта проблема решается путем записи списка параметров в файл C:\my.cnf.

  • Было бы удобно останавливать mysqld из диспетчера задач. Сейчас для этого нужно применять mysqladmin shutdown.

  • Требуется перенести readline в Windows для использования с инструментальной программой, запускаемой из командной строки mysql.

  • GUI версия стандартных MySQL-клиентов (mysql, mysqlshow, mysqladmin и mysqldump) будет очень полезна.

  • Было бы хорошо, если бы чтение и запись сокетов из net.c можно было бы прерывать. Это позволило бы останавливать открытые потоки командой mysqladmin kill в Windows.

  • mysqld всегда стартует в местоположении "C", а не в местоположении, установленном по умолчанию. С благодарностью будет принято исправление, позволяющее использование программой mysqld текущего значения местоположения для порядка сортировки.

  • Требуется добавить макрос для ускорения безопасного для потоков метода инкремента/декремента, обеспечиваемого Windows.

  • Остальные, специфические для Windows вопросы, можно найти в файле README, который находится в поставке MySQL-Windows.


Примечания к Solaris

В системе Solaris проблемы подстерегают вас еще до распаковки дистрибутива MySQL! Программа tar в Solaris ``не умеет'' работать с длинными именами файлов, поэтому при попытке распаковать MySQL вы можете увидеть сообщение об ошибке, подобное следующему:

x mysql-3.22.12-beta/bench/Results/ATIS-mysql_odbc-NT_4.0-cmp-db2,\
informix,ms-sql,mysql,oracle,solid,sybase, 0 bytes, 0 tape blocks
tar: directory checksum error

В этом случае для распаковки дистрибутива необходимо использовать GNU-версию программы tar (gtar). Скомпилированную версию данной программы для Solaris можно загрузить с http://www.mysql.com/downloads/os-solaris.html.

Собственные потоки Sun работают только начиная с версии Solaris 2.5. Для версии 2.4 и более ранних MySQL автоматически использует MIT-pthreads.

Следующее сообщение об ошибке конфигурации:

checking for restartable system calls... configure: error can not run test
programs while cross compiling

означает, что имели место какие-то ошибки в установке компилятора! В этом случае необходимо обновить ваш компилятор до более свежей версии. Эту проблему можно также решить, вставив в файл config.cache следующую строку:

ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}

При использовании Solaris на SPARC мы рекомендуем компилятор gcc 2.95.2. Его можно получить по адресу http://gcc.gnu.org/. Отметим, что egcs 1.1.1 и gcc 2.8.1 работают на SPARC ненадежно!

Рекомендуемая строка для configure при использовании gcc 2.95.2:

CC=gcc CFLAGS="-O3" \
CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \
./configure --prefix=/usr/local/mysql --with-low-memory --enable-assembler

Если используется UltraSPARC, то при добавлении строки "-mcpu=v8 -Wa,-xarch=v8plusa" к переменным CFLAGS и CXXFLAGS можно получить повышение производительности на 4%.

При использовании компилятора Sun Fortre версии 5.0 (или выше) можно запускать configure следующим образом:

CC=cc CFLAGS="-Xa -fast -xO4 -native -xstrconst -mt" \
CXX=CC CXXFLAGS="-noex -xO4 -mt" \
./configure --prefix=/usr/local/mysql --enable-assembler

Можно создать 64-разрядный исполняемый код с помощью:

CC=cc CFLAGS="-Xa -fast -native -xstrconst -mt -xarch=v9" \
CXX=CC CXXFLAGS="-noex -mt -xarch=v9" ASFLAGS="-xarch=v9" \
./configure --prefix=/usr/local/mysql --enable-assembler

В тестах на производительность MySQL с Sun Fortre 5.0 мы получили 4%-ное ускорение на UltraSPARC по сравнению с gcc 3.2 с опцией -mcpu.

Если вы создаете 64-разрядный код, он на 4% медленнее чем 32-разрядный, но mysqld можно обслуживать больше потоков и использовать больше памяти.

В случае возникновения проблем с fdatasync или sched_yield их можно решить путем добавления LIBS=-lrt к командной строке запуска конфигурирования.

Последующий абзац относится только к более ранним, чем WorkShop 5.3, компиляторам:

Отредактировать скрипт configure можно, заменив строку:

#if !defined(__STDC__) || __STDC__ != 1

строкой:

#if !defined(__STDC__)

При включении __STDC__ с помощью опции -Xc компилятор Sun не сможет откомпилировать программу с файлом pthread.h из системы Solaris. Это ошибка Sun (испорченный компилятор или испорченный включаемый файл).

Если при запуске mysqld выдает приведенное ниже сообщение об ошибке:

libc internal error: _rmutex_unlock: rmutex not held

необходимо попробовать собрать MySQL, используя компилятор Sun с опцией запрещения многопоточности (-mt). Добавьте опцию -mt к CFLAGS и CXXFLAGS и попробуйте запустить mysqld еще раз.

При использовании SFW версии gcc (поставляемой с Solaris 8) необходимо к переменной окружения LD_LIBRARY_PATH перед конфигурированием добавить /opt/sfw/lib.

При работе с gcc от sunfreeware.com может возникнуть множество неприятностей. Во избежание проблем необходимо перекомпилировать gcc и бинарные инструментальные программы GNU в той системе, где вы собираетесь их использовать.

Получение нижеследующей ошибки при компиляции MySQL компилятором gcc означает, что gcc не сконфигурирован под вашу версию Solaris:

shell> gcc -O3 -g -O2 -DDBUG_OFF -o thr_alarm ...
./thr_alarm.c: In function `signal_hand':
./thr_alarm.c:556: too many arguments to function `sigwait'

В этом случае нужно взять самую свежую версию gcc и скомпилировать ее установленным gcc-компилятором! Почти все бинарные версии gcc (по крайней мере для Solaris 2.5) содержат старые, непригодные к использованию включаемые файлы, которые портят все программы, использующие потоки (а возможно, и другие программы)!

В Solaris не обеспечиваются статические версии всех системных библиотек (libpthreads и libdl), поэтому компилировать MySQL с опцией -static нельзя. При попытке такой компиляции вы получите одно из приведенных ниже сообщений об ошибке:

ld: fatal: library -ldl: not found
или
undefined reference to `dlopen'
или
cannot find -lrt

Если слишком много процессов одновременно пытаются установить соединение с mysqld, то в файле протокола MySQL появится следующее сообщение об ошибке:

Error in accept: Protocol error

Для решения этой проблемы можно попытаться запустить сервер с опцией --set-variable back_log=50. Внимание: --set-variable не используется в MySQL 4.0. Просто используйте --back_log=50. See Раздел 4.1.1, «Параметры командной строки mysqld».

Если вы линкуете собственный MySQL-клиент, то при попытке его запустить может выдаваться следующее сообщение об ошибке:

ld.so.1: ./my: fatal: libmysqlclient.so.#:
open failed: No such file or directory

Проблему можно решить одним из следующих способов:

  • Линковать клиент со следующими опциями (вместо -Lpath): -Wl,r/полный-путь-к-libmysqlclient.so.

  • Скопировать libmysqclient.so в /usr/lib.

  • Перед запуском своего клиента добавить путь к каталогу, в котором находится libmysqclient.so, к переменной окружения LD_RUN_PATH.

Если вы столкнулись с проблемами конфигурирования, пытаясь линковать с опцией -lz и у вас не установлена zlib, существует два варианта:

  • Если вы хотите иметь возможность использовать протокол взаимодействия со сжатием, необходимо получить и установить zlib с ftp.gnu.org.

  • Сконфигурировать с --with-named-z-libs=no.

Если при использовании gcc вы столкнулись с проблемами загрузки UDF-функций в MySQL, попробуйте добавить -lgcc к строке, отвечающей за линкование UDF-функций.

Для того чтобы MySQL-сервер стартовал автоматически, можно скопировать support-files/mysql.server в /etc/init.d и создать на него символическую ссылку /etc/rc3.d/S99mysql.server.

Поскольку Solaris не поддерживает файлы образа памяти для приложений, использующих setuid(), невозможно получить файл образа памяти программы mysqld при использовании опции --user.


Примечания к FreeBSD

Для работы Mysql рекомендуется FreeBSD версий 3.x, поскольку версия с потоками является намного более интегрированной.

Простейшим, а поэтому и более предпочтительным способом установки является использование портов mysql-server и mysql-client из коллекции портов FreeBSD, которая доступна по адресу http://www.freebsd.org/.

Использование этих портов обеспечивает:

  • работоспособный MySQL со всеми возможностями оптимизации, доступными на данной версии FreeBSD;

  • автоматическую конфигурацию и сборку;

  • установку скриптов, запускающих MySQL, в /usr/local/etc/rc.d;

  • возможность получения списка установленных файлов по команде pkg_info -L и удаления их при помощи команды pkg_delete в случае, если вы более не нуждаетесь в MySQL на данной машине.

Рекомендуется использовать MIT-pthreads на FreeBSD версий 2.x и собственные потоки для 3.x и более поздних версий FreeBSD. На некоторых последних версиях 2.2.x возможно применение собственных потоков, но при этом не исключены проблемы с остановкой mysqld.

Для сборки MySQL в соответствии с Makefile'ом необходима программа GNU make (gmake). Прежде чем выполнять сборку MySQL, следует установить GNU make.

Удостоверьтесь, что используемый вами сервер имен работает корректно. В противном случае возможны задержки или ошибки при соединении с mysqld.

Убедитесь в корректности записи localhost в файле /etc/hosts (при отсутствии или ошибочности этой записи возникнут проблемы соединения с базой). Файл /etc/hosts должен начинаться с записи:

127.0.0.1 localhost localhost.your.domain

Предлагаемый способ сборки и установки MySQL на FreeBSD с использованием gcc (версии 2.95.2 или более поздней):

CC=gcc CFLAGS="-O2 -fno-strength-reduce" \
CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions -felide-constructors \
-fno-strength-reduce" \
./configure --prefix=/usr/local/mysql --enable-assembler
gmake
gmake install
./scripts/mysql_install_db
cd /usr/local/mysql
./bin/mysqld_safe &

Если программа configure решила использовать MIT-pthreads, необходимо ознакомится с примечаниями по MIT-pthreads (see Раздел 2.3.6, «Замечания по потокам MIT-pthreads»).

Если при выполнении make install возникла ошибка, сообщающая о невозможности нахождения /usr/include/pthreads (can't find `/usr/include/pthreads'), это значит, что configure не определил необходимость использования MIT-pthreads. Для исправления данной ошибки необходимо выполнить следующие команды:

shell> rm config.cache
shell> ./configure --with-mit-threads

Как известно, в FreeBSD по умолчанию установлено очень небольшое значение для количества одновременно открытых файлов (see Раздел A.2.16, «Не найден файл (File not found)»). Чтобы исправить положение, следует раскомментировать секцию ulimit -n в скрипте safe_mysqld или повысить ограничение для пользователя mysqld в /etc/login.conf (не забудьте перестроить его командой cap_mkdb /etc/login.conf). Помимо этого, имеет смысл проверить установку подходящего класса для этого пользователя в файле паролей, если не используется значение по умолчанию (при помощи chpass mysqld-user-name). See Раздел 4.7.2, «safe_mysqld, оболочка mysqld».

При наличии значительного объема оперативной памяти можно рассмотреть вариант перестройки ядра, чтобы разрешить MySQL использовать более чем 512Mб оперативной памяти. Чтобы получить больше информации, обратитесь к option MAXDSIZ в конфигурационном файле LINT.

В случае возникновения проблем с текущей датой в MySQL ситуацию может исправить правильная установка переменной TZ.

Для получения безопасной и устойчивой системы следует использовать только те ядра системы FreeBSD, которые обозначены как -RELEASE.


Git

  • Домашняя страница Git (англ.)
  • Git User’s Manual (англ.) (также распространяется вместе с исходным текстом программы: Documentation/user-manual.txt)
  • Страница Git на kernel.org (англ.)
  • Everyday Git (англ.) («Git на каждый день») — набор из примерно 20 команд (на самом деле их будет около 5-6), которые пригодятся в повседневном использовании системы.
  • Linus Torvalds on Git (англ.) — рассказ Линуса Торвальдса о git и других системах контроля версий (YouTube)
  • Randal Schwartz on Git (англ.) — рассказ Рэндела Шварца о git (YouTube)
  • Contributing with Git (англ.) — Google Talks 27.10.2008 (YouTube)
  • GitCasts.com (англ.) — сайт, посвящённый скринкастам по использованию git.
  • Git Guts — цикл статей на русском о git.

    Источник: http://ru.wikipedia.org


Ссылки

  • Скачать Visual Studio Express Edition 2008
  • Техническая документация.

    Источник: http://ru.wikipedia.org


Описание

Microsoft .NET Framework — программная технология, предназначенная для создания как обычных программ, так и веб-приложений (в качестве платформы для разработок впервые предложена корпорацией Microsoft ).

Одной из основных идей Microsoft .NET является совместимость различных служб, написанных на разных языках. Например, служба, написанная на C++ для Microsoft .NET, может обратиться к методу класса из библиотеки, написанной на Delphi ; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET , а исключение , созданное методом, написанным на C# , может быть перехвачено и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок.

.NET является патентованной технологией корпорации Microsoft. Тем не менее, после заключения договоренности с компанией Novell , была признана технология Mono как реализация .NET на Unix -подобных системах ( GNU/Linux , Mac OS X ). Однако договорённость касается Novell и клиентов Novell, также технологии ASP.NET , ADO.NET и Windows.Forms не были стандартизированы ECMA/ISO и использование их в Mono находится под угрозой претензий со стороны Microsoft. Mono предоставляет реализацию ASP.NET , ADO.NET и Windows.Forms, но в то же время рекомендует обходить эти API .

Среды разработки .NET-приложений:

  • Microsoft Visual Studio (C#, Visual Basic .NET, Managed C++),
  • SharpDevelop ,
  • MonoDevelop ,
  • Eclipse ,
  • Borland Developer Studio (Delphi for .NET, C#),
  • PascalABC.NET и т. д.

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

Так же как и технология Java , среда разработки .NET создаёт байт-код , предназначенный для исполнения виртуальной машиной . Входной язык этой машины в .NET называется MSIL ( Microsoft Intermediate Language ), или CIL ( Common Intermediate Language , более поздний вариант), или просто IL. Применение байт-кода позволяет получить кроссплатформенность на уровне скомпилированного проекта (в терминах .NET: сборка), а не только на уровне исходного текста, как, например, в С . Перед запуском сборки в среде исполнения CLR байт-код преобразуется встроенным в среду JIT-компилятором (just in time, компиляция на лету) в машинные коды целевого процессора.

Источник: http://ru.wikipedia.org


Ссылки

  • Скачать .NET Framework 3.5
  • Microsoft .NET Homepage
  • Got Dot Net — .NET News.
  • Программирование под платформу .NET Framework
  • Running .NET on Linux or Windows
  • Утилита для локализации .NET приложений на русском языке
  • ASP.NET Mania — сайт о .NET на русском языке.
  • Введение в .NET - о причине появления .NET, отличие .NET-программ от обычных, перспективы.
  • Форум по .Net — русскоязычный форум посвящённый программированию на Visual Basic 6.0 и .Net, ASP.Net.

    Источник: http://ru.wikipedia.org


Описание

MySQL (сленг. «мускул») — свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Источник: http://ru.wikipedia.org


Ссылки

  • Официальный сайт (англ.)
  • Русский сайт по MySQL
  • Документация на сайте разработчиков MySQL
  • Раздел MySQL на форумах SQL.ru
  • Форум, поддерживаемый авторами нескольких книг по MySQL
  • Русскоязычное ЖЖ-сообщество ru_mysql
  • FAQ, о путанице MySQL кодировок (4.1, 5.x и пр.)
  • MySQL Блоги о MySQL (англ.)
  • Авторизованные курсы MySQL (русск.)
  • Установка и настройка MySQL под Windows (пошаговая иллюстрированная инструкция)

    Источник: http://ru.wikipedia.org


Описание

PostgreSQL (произносится «Пост-Грес-Кью-Эл» или просто «постгрес») — свободная объектно-реляционная система управления базами данных (СУБД).

Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2, Informix и СУБД производства Sybase) вместе с другими свободными СУБД (такими как MySQL и Firebird).
На базе PostgreSQL компанией EnterpriseDB созданы более мощные варианты этой СУБД, являющиеся платными для коммерческого использования — Postgres Plus (состоит целиком только из продуктов с открытыми исходными кодами; плата требуется только при необходимости приобретения коммерческой поддержки продукта) и Postgres Plus Advanced Server (расширение PostgreSQL специальными возможностями для обеспечения совместимости с Oracle Database). В комплекте поставки данных продуктов содержится большой набор ПО для разработчиков и DBA.

Существует в реализациях для следующих платформ: Linux, Solaris/OpenSolaris, Win32, MacOS X, FreeBSD,QNX4.25,QNX6.

Источник: http://ru.wikipedia.org


Ссылки

  • Домашняя страница PostgreSQL (англ.)
  • Документация PostgreSQL (англ.)
  • Каталог ресурсов PostgreSQL и специализированный поиск по ним
  • История о PostgreSQL. (русск.)
  • Документация PostgreSQL (множество переводов на рус.)
  • Русскоязычная email-рассылка PostgreSQL
  • Статья Олега Бартунова «Что такое PostgreSQL?» (русск.)
  • Статья Олега Бартунова «Новые и важные изменения в СУБД PostgreSQL» (2006) (русск.)
  • Статья Николая Самохвалова «PostgreSQL 8.3» (2007) (русск.)
  • Postgresmen: Поддержка PostgreSQL в России и странах СНГ
  • Самая большая база данных в мире — в Yahoo! И работает она на PostgreSQL!

    Источник: http://ru.wikipedia.org


Список портов

Необходимое ПО

Для работы нам необходимо (все это можно ставить из портов):

  • GIT (/usr/ports/devel/git) - для получения исходных текстов мангоса
  • SVN (/usr/ports/devel/subversion) - для получения исходных текстов скриптов и архивов базы
  • MySQL (/usr/ports/databases/mysql51-server) - для базы, если база на другом хосте, вместо сервера ставим клиент
  • autotools (/usr/ports/devel/autotools) - для генерации целей сборки
  • GNUmake (/usr/ports/devel/gmake) - для сборки (можно собирать и родным)
  • screen (/usr/ports/sysutils/screen) - для работы сервера в фиктивном терминале
  • 7zip (/usr/ports/archivers/p7zip) - для распаковки бд


Установка портов

Установка ПО

Если есть лишнее время трафик и какойто опыт работы с портами, то ставим всё из портов

% su
Password:
# make -C /usr/ports/devel/subversion install clean
# make -C /usr/ports/devel/git install clean
# make -C /usr/ports/databases/mysql51-server install clean
# make -C /usr/ports/sysutils/screen install clean
# make -C /usr/ports/archivers/p7zip install clean

неудивляйтесь что так мало, остальное установится как зависимости

Если мы недружим с портами, то ставим пакаджи

% su
Password:
# pkg_add -r git subversion mysql51-server autotools screen gmake p7zip


Необходимое ПО

Для успешного запуска и функционирования сервера нам нужны следующие пакеты:

  • Mysql server 5 ветки (5.0.27 на этот момент)
  • Mysql_devel
  • Mysql_shared
  • Mysql_Headers and libraries
    Всё это мы берем с http://dev.mysql.com/downloads/mysql/5.0.html

  • Gcc 4.1.Х ( gcc / g++ / cpp / fort77 / g77 / gpp)
  • Gcc_devel
  • Gcc-c++
  • Gcc-cpp
    Берем с http://gcc.gnu.org/

  • Autoconf
  • Automake
  • Aclocal
  • Autoheader
  • make
  • OpenSSL (libssl-dev)
  • Subversion
  • Python
  • Git

Также все это мужно установить обычно идущим в комплекте с Федорой пакетом yum (читаем man yum).

С незначительными правками и доплнениями взято из инструкции Sin(модератора RMDC)


Компиляция под Windows

1) Получение Исходных кодов MaNGOS
Вам понадобится GIT клиент(например MsysGIT .
Адрес Репозитория Проекта MaNGOS: git://github.com/MaNGOS/MaNGOS.git
Директория: выберите любую на ваше усмотрение

2) Компиляция MaNGOS
Для компиляции MaNGOS в Windows Вам необходимо скачать Microsoft Visual Studio 2008 Express Edition ( C++ ) .

Так же вам необходимо скачать "Microsoft Platform SDK for Windows Server 2003 R2" для Visual Studio 2008 express, это должно предотвратить ошибку "Winsock2.h".

После установки Platform SDK откройте VS2008. Выберите Tools > Options > Projects and solutions, если вы еще этого не сделали, измените три строки так, чтобы они содержали пути к Platform SDK

C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin

C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include

C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib

Далее откройте ваш MaNGOSdVC90.sln из исходных кодов MaNGOS в Visual Studio.Измените режим "debug" на "release", если требуется, и нажмите "Build Solution". (Заметка: используйте "Rebuild Solution" для последующих компиляций).

Если компиляция MaNGOS прошла успешно, вы увидете что-то вроде:

========== Build: 12 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Источник: http://www.getMaNGOS.com


Компиляция под FreeBSD

Получаем исходники MaNGOS из github:

% cd
% git clone git://github.com/MaNGOS/MaNGOS.git

Получаем исходники ScriptDev2 из svn:

% svn co http://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2 ~/MaNGOS/src/bindings/ScriptDev2

Применяем последний патч, идущий вместе с ScriptDev2

% cd MaNGOS
% git apply < src/bindings/ScriptDev2/patches/MaNGOS-2008-12-22-ScriptDev2.patch

Далее делаем реконфигурацию и создаём директорию для сборки сервера, лучше смонтировать её в озу или кинуть более быстрое устройство (например в туже озу):

% autoreconf -fi
% mkdir comp
% cd comp

Затем конфигурируем... для 32бит ОС, одноядерник (например ставите сервер дома эксперимента ради)

% ../configure CFLAGS="-O2 -pipe -fomit-frame-pointer" CXXFLAGS="-O2 -pipe -fomit-frame-pointer" --prefix=/usr/local/MaNGOS --sysconfdir=/usr/local/MaNGOS/etc --enable-cli --with-gnu-ld

для 64бит ос, двуядерник (для рабочей конфигурации со стабильно-опитмизироваными параметрами)

% ../configure \
? CFLAGS="-march=athlon64 -m64 -O2 -msse3 -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks" \
? CXXFLAGS="-march=athlon64 -m64 -O2 -msse3 -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks" \
? MAKEOPTS="-j3" \
? --prefix=/usr/local/MaNGOS --sysconfdir=/usr/local/MaNGOS/etc --enable-cli --with-gnu-ld

...компилируем и устанавливаем

% gmake
...
% su
Password:
# gmake install


Компиляция под Linux

Выполните команду в терминале:

 apt-get install gcc g++ automake autoconf make libmysql++-dev libtool libssl-dev subversion patch zlibc libc6 git git-core cogito

Пользователи Ubuntu смогут воспользоваться также этой командой:

sudo apt-get install build-essential libmysql++-dev libtool libssl-dev subversion zlibc git-core

Чтобы использовать git и не исползовать gitfm, исполните:

update-alternatives --config git

Введите цифру, совапдающую с:

/usr/bin/git-scm

Скачайте файлы с репозитория git, git создаст дирректорию с исходными кодами MaNGOS:

 git clone git://github.com/mangos/mangos.git

Пройдите в дирректорию MaNGOS:

cd mangos

Теперь необходимо установить ScriptDev2 .

После установки ScriptDev2 компилируем MaNGOS. Введите следующие команды в терминале:

  • autoreconf --install --force
  • aclocal
  • autoheader
  • autoconf
  • automake --add-missing
  • automake src/bindings/ScriptDev2/Makefile
  • mkdir objdir
  • cd objdir
  • ../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
  • make
  • make install
  • make clean
  • cd ..
  • rm -r objdir

Вы можете заменить:
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos

Следующим:
../configure --prefix=[working path] --sysconfdir=[working path]/etc --enable-cli --enable-ra --datadir=[working path] with your [working path]

Для примера:
../configure --prefix=/opt/foo --sysconfdir=/opt/mangos/foo --enable-cli --enable-ra --datadir=/opt/foo


Установка

После успешной компиляции MaNGOS переместите файлы сервера в удобное вам место.
Скомпилированные бинарные файлы можно найти в /bin/release .

Скопируйте .dll , .exe и .pdb в папку, где будет находится сервер.

Вам также понадобятся конфигурационные .conf файлы из вашей папки с исходными кодами:
/src/MaNGOSd/MaNGOSd.conf.in
/src/realmd/realmd.conf.in

Скопируйте их в ту же дирректорию, что и .dll, .exe, и .pdb файлы.
Теперь переименуйте их в mangosd.conf и realmd.conf.

Источник: http://www.getMaNGOS.com


Импорт Базы Данных

По умолчанию MaNGOS использует три базы данных: mangos, realmd и characters.

Дампы этих БД могут быть найдены в дирректории \sql\.
Для быстроты импорта и удобства работы с базами данных MySQL рекомендуется программа MySQl GUI Tools , для PgSQL pgAdmin III .

Источник: http://www.getMaNGOS.com [дополнено]


Извлечение Данных Клиента

Для работы сервера вам необходимы Maps(карты), DBC-файлы(БД клиента) и, по желанию VMAP-файлы.
Для извлечения Maps и DBC вам необходим файл ad.exe из дирректории \contrib\extractor исходных кодов MaNGOS. Скопируйте его в папку с установленной игрой World of Warcraft , например C:\Program Files\World of Warcraft.
После перемещения ad.exe в папку World of Warcraft , запустите его. Программа начнет обработку и извлечение файлов, обычно процесс занимает около 10 минут. Когда процесс будет закончен, программа сама закроется, оставив две папки в директории World of Warcraft- maps и dbc. Вам необходимо скопировать обе эти папки в дирректорию MaNGOS.
VMAP совершенно необязательны, и их рекомендуется использовать только если у Вас есть удаленная машина и по меньшей мере 2 Гигабайта оперативной памяти и количество игроков около 20, большее количество игроков требует большего количества оперативной памяти для стабильной и долгой работы MaNGOS.
VMAP это особый вид карт, который не дает NPC атаковать игроков сквозь стены. Также он проверяет видит ли NPC игрока перед атакой. Извлечение VMAP занимает много времени, иногда больше двух часов, так что не рекомендуется их извлечение на слабых компьютерах.
Для извлечения VMAP скопируйте содержимое дирректории \contrib\vmap_extract_assembler_bin в вашу [WOW]\Data\enUS*\ папку и запустите makevmaps_SIMPLE.bat. Процесс займет очень долгое время. Когда распаковка закончится, должена появиться директория vmaps, вам необходимо скопировать ее в папку MaNGOS.

*Или ruRU, enGB...

Источник: http://www.getMaNGOS.com [дополнено]


Создание БД сервера

Создаем базы сервера, пользователя и структуру:

% mysql -u root -p < ~/MaNGOS/sql/create_mysql.sql
% mysql -u MaNGOS -p MaNGOS < ~/MaNGOS/sql/MaNGOS.sql
% mysql -u MaNGOS -p realmd < ~/MaNGOS/sql/realmd.sql
% mysql -u MaNGOS -p characters < ~/MaNGOS/sql/characters.sql

Теперь заполняем базу, так как UDB вообще отстали от времени, будем качать YTDB (плюс в ней сразу rudb есть)

% svn co http://svn2.assembla.com/svn/ytdbase ~/YTDB

распаковываем, ставим, обновляем скрипты

% 7z e ~/YTDB/WOtLK/YTDB_097_R45.FINAL_rev6969_WotLK_R29_RuDB.7z
% mysql -u MaNGOS -p MaNGOS < YTDB_097_R45.FINAL_rev6969_WotLK_R29_+RUDB.sql
% mysql -u MaNGOS -p MaNGOS < ~/MaNGOS/src/bindings/ScriptDev2/sql/MaNGOS_full_scripts.sql

Теперь добавляем свой реалмлист и аккаунт гма. xxx.xxx.xxx.xxx необходимо заменить на ip на котором реалм будет слушать входящие подключения:

% mysql -u MaNGOS -p realmd
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8016
Server version: 5.1.20-beta FreeBSD port: mysql-server-5.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> UPDATE realmlist SET name='my super server', address='xxx.xxx.xxx.xxx' WHERE id='1';
mysql> DELETE FROM account;
mysql> INSERT INTO account (username,sha_pass_hash,gmlevel) VALUES
    ->('megaadmin',SHA1(CONCAT(UPPER('megaadmin'),':',UPPER('megapassword'))),'3');


Необходимые файлы

Создаем необходимые папки:

# mkdir /usr/local/MaNGOS/share/MaNGOS/maps
# mkdir /usr/local/MaNGOS/share/MaNGOS/dbc
# mkdir /usr/local/MaNGOS/share/MaNGOS/vmaps

Экстрактит только под виндой, кидаем экстрактор в папку с ВоВом и запускаем распаковку dbc (~45-50M) maps (~1G) vmaps (~2-1G в зависимости от оптимизации).
Более подробную информацию о распаковке данных клиента Вы можете прочитать в разделе Установка->Windows->Ивлечение Данных Клиента

Далее закачиваете файлы на вашу FreeBSD (посредством ftp, smb или nfs) и копируете в соответствующие папки.


Установка БД

Будем исходить и того что мы просто поставили Mysql Server и установили пароль рута (rpm'ки не сложно поставить)
пишем /usr/bin/mysql --password="рутовый пароль"
попадаем в оболочку mysql... теперь нужно создать 2 базы данных, пишем
CREATE DATABASE mangos;
CREATE DATABASE realmd;
CREATE DATABASE characters;
Проверяем:
SHOW DATABASES;
Если видим там наши 3 базы значит все ок, едем дальше
Теперь нам нужно создать пользователя для этих трех баз:
Пишем:
GRANT ALL PRIVILEGES ON mangos.* TO 'mangos'@'localhost'
Появится "->", пишем
IDENTIFIED BY 'пароль' WITH GRANT OPTION;
таким образом мы создали пользователя mangos с полными правами на базой mangos
Даём привилегии для второй базы:
GRANT ALL PRIVILEGES ON realmd.* TO 'mangos'@'localhost' WITH GRANT OPTION;
Даём привилегии для третьей базы:
GRANT ALL PRIVILEGES ON characters.* TO 'mangos'@'localhost' WITH GRANT OPTION;
Проверяем:
show grants for mangos@localhost;
Если наши записи есть, значит всё прошло успешно.
выходим из оболочки...

Внимание!!!
Если mysql server стоит на удалённой машине, то вместо localhost нужно указать ip адрес той машины на которой стоит mangos сервер!

Переходим в папку куда мы поставили сервер, там папка mangos, в ней sql (/home/mangos/server/mangos/sql)
Проверяем наличие файла realmd.sql
Его нам нада загнать в базу realmd, что мы и делаем:
/usr/bin/mysql --user=mangos --password="пароль"
Запускаем оболочку. Выбираем бд с которой будем работать:
use realmd;
напишут что Database changed
теперь пишем:
\. /home/mangos/server/mangos/sql/realmd.sql
realmd база готова, можете написать SHOW TABLES; и посмотреть на созданные таблицы
выходим из оболочки...
Аналогичные действия проводим и для базы characters.

Теперь нужно наполнить базу mangos (Расширения->Контент для БД данной документации).

Скачиваем любую БД, распаковываем... к примеру в туже папку sql, в которой лежит файл realmd.sql
Итак получился путь /home/mangos/server/mangos/sql/база.sql
И делаем тоже самое что и с файлом realmd.sql, только вместо use realmd; пишем use mangos;
Данные внесены, всё хорошо... Теперь нужно обновить нашу базу данных, до ревизии самого сервера
Пример: ревизия сервера - 2900 а базу мы скачали для ревизии 2550, что нужно сделать:
идём в папку /home/mangos/compile/sql/updates/ , видим там много файлов вида "номер_название.sql"
И импортируем все файлы. которые больше 2250_название.sql в базу данных
в основном апдейты для mangos базы... но если имя файла realmd, realmlist, realmcharacters то это апдейты для базы realmd
Импортировать файлы я думаю вы уже научились
Итак. базу мы обновили! Теперь сразу чтобы потом не возвращаться к этому изменим таблицу realmlist под наш сервер:
входим в оболочку: /usr/bin/mysql --user=mangos --password="пароль"
выбираем базу realmd и пишем:
UPDATE `realmlist` SET `name` = 'название_сервера' , `address` = 'ip адрес сервера' WHERE `id` = '1';
Всё! С базой дела закончены.

С незначительными правками и доплнениями взято из инструкции Sin(модератора RMDC)


Необходимые файлы

Создаем необходимые папки:

/MaNGOS/maps
/MaNGOS/dbc
/MaNGOS/vmaps

Экстрактит только под виндой, кидаем экстрактор в папку с ВоВом и запускаем распаковку dbc (~45-50M) maps (~1G) vmaps (~2-1G в зависимости от оптимизации).
Более подробную информацию о распаковке данных клиента Вы можете прочитать в разделе Установка->Windows->Ивлечение Данных Клиента

Далее закачиваете файлы на вашу систему (посредством ftp, smb или nfs) и копируете в соответствующие папки.


Конфигурирование

Пройдите в дирректорию MaNGOS и откройте блокнотом файлы MaNGOSd.conf и realmd.conf.

MaNGOSd.conf

Установите значение DataDir = "." .

Двалее отредактируйте строку соединения сервера с MySQL или PgSQL сервером, она имеет следующий вид:

АдресСервераБД;ПортСервераБД;ЛогинПользователяБД;ПарольПользователяБД

LoginDatabaseInfo это строка соединения с БД realm;
WorldDatabaseInfo это строка соединения с БД MaNGOS;
CharactersDatabaseInfo это строка соединения с БД characters;

В новых ревизиях вы также должны изменить параметр"Bind IP". Поставьте там любой ip адрес(например 127.0.0.1)

Если вы не знаете что делаете, все остальные параметры должны остаться не измененными.

Далее проделайте такие же операции в файле конфигурации realmd.conf.

Источник: http://www.getMaNGOS.com [дополнено]


Конфигурирование

Первое что сделаем, это настроим доступ к базе через unix-cокет, вместо внутрисетевой петли, и корректный путь к необходимым базам данных

/usr/local/MaNGOS/etc/realmd.conf
LoginDatabaseInfo     = ".;/tmp/mysql.sock;MaNGOS;MaNGOS;realmd"
/usr/local/MaNGOS/etc/MaNGOSd.conf
LoginDatabaseInfo     = ".;/tmp/mysql.sock;MaNGOS;MaNGOS;realmd"
WorldDatabaseInfo     = ".;/tmp/mysql.sock;MaNGOS;MaNGOS;MaNGOS"
CharacterDatabaseInfo = ".;/tmp/mysql.sock;MaNGOS;MaNGOS;characters"


Конфигурирование

Есть 2 конфига - mangosd.conf и realmd.conf.... Оба лежат в папке /home/mangos/server/etc
в обоих файлах найдите:
LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"
в файле realmd.conf и
LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"
WorldDatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos"
в файле mangosd.conf
Изменяем эти строки на наши: mangos;mangos заменяем на наши логин и парольк базе данных
Остальные настройки настраиваем сами, читая коментарии.


Windows

Для запуска сервера Вам необходимо сначала запустить realmd.exe, а затем MaNGOSd.exe.


Скрипты запуска

Cоздаём скрипты такого содержания (заодно они будут рестартить серв в случае краха)

/usr/local/MaNGOS/bin/MaNGOS.sh
#!/bin/sh
while true ; do
servlog='/usr/local/MaNGOS/bin/Server.log';
outpatch='/usr/local/MaNGOS/bin/crash/';
date=`date "+%Y-%m-%d_%H:%M:%S"`;
echo "Server CRASHED !!! Start Bugreport System." >> $outpatch$date.txt;
echo "Server.log Log FILE Last 30 Lines:" >> $outpatch$date.txt;
cat $servlog | tail -n 30 >> $outpatch$date.txt;
echo "" >> $outpatch$date.txt;
echo "END bugtracker system." >> $outpatch$date.txt;
nice -n -20 /usr/local/MaNGOS/bin/MaNGOS-worldd
done
/usr/local/MaNGOS/bin/realm.sh
#!/bin/sh
while true ; do
echo `date` ", Realm daemon crashed and restarted." >> /usr/local/MaNGOS/bin/realmcrash
nice -n -20 /usr/local/MaNGOS/bin/MaNGOS-realmd
done
/usr/local/MaNGOS/bin/start
cd /usr/local/MaNGOS/bin/
screen -AmdS world /usr/local/MaNGOS/bin/MaNGOS.sh
screen -AmdS realm /usr/local/MaNGOS/bin/realm.sh

делаем их исполняемыми

# chmod +x /usr/local/MaNGOS/bin/*.sh /usr/local/MaNGOS/bin/start


Запуск программы

Запускаем сервер так

# /usr/local/MaNGOS/bin/start

чтобы посмотреть что там происходит, вводим команды

для реалма
# screen -r realm
для мира
# screen -r world

когда насмотрелись, жмём Ctrl+A,D


Автоматический запуск

Для автоматического запуска мангоса, вместе с системой, можно воспользоваться rc-скриптом, приведённым ниже (не проверялся)

/usr/local/etc/rc.d/MaNGOS
#!/bin/sh
# REQUIRE: mysql
. /etc/rc.subr
command=/usr/local/MaNGOS/bin/start
pidfile=/var/run/MaNGOS.pid
stop_postcmd=stop_postcmd
stop_postcmd()
{
 screen -AvdS world && screen -AvdS realm
}


Linux

Для облегчения запуска и управления будем использовать очень удобную программу Screen
Качаем - http://www.icewalkers.com/Linux/Soft...80/screen.html
Устанавливаем....
Идём в папку /home/mangos/server/bin (там храняться запускаемые файлы)
Создаем 3 файла:
mangos.sh:

#!/bin/sh
while true ; do
servlog='/home/mangos/server/bin/Server.log';
outpatch='/home/mangos/server/bin/crash/';
date=`date "+%Y-%m-%d_%H:%M:%S"`;
echo "Server CRASHED !!! Start Bugreport System." >> $outpatch$date.txt;
echo "Server.log Log FILE Last 30 Lines:" >> $outpatch$date.txt;
cat $servlog | tail -n 30 >> $outpatch$date.txt;
echo "" >> $outpatch$date.txt;
echo "END bugtracker system." >> $outpatch$date.txt;
/home/mangos/server/bin/mangosd
done
это файл запуска mangosd (сразу являющийся авторестартером и багтрекером)
realm.sh:

#!/bin/sh
while true ; do
echo `date` ", Realm daemon crashed and restarted." >> /home/mangos/server/bin/realmcrash
/home/mangos/server/bin/realmd
done
тоже самое только для realmd
start:

cd /home/mangos/server/bin/
screen -AmdS world /home/mangos/server/bin/mangos.sh
screen -AmdS realm /home/mangos/server/bin/realm.sh
это основной файл запуска
Также создадим папку crash
mkdir /home/mangos/server/bin/crash/
туда будут складываться отчеты о падениях сервера mangosd
Падения realmd будут писаться в файле realmcrash
Прописываем правва на файлы:
chmod 777 mangos.sh
chmod 777 realm.sh
chmod 777 start
И запускаем файл start
./start
После пишем:
screen -list
Если получаем что то вроде:
Код:
$ screen -list
There are screens on:
        8296.world      (Detached)
        8299.realm      (Detached)
2 Sockets in /var/run/screen/S-mangos.

То понимаем что все отлично
Чтобы посмотреть как работает наш сервер напишем:
screen -r world
и попадем в терминал, где работает сервер mangosd
посмотрели и хватит.... нажимаем Ctrl+a и потом d
выходим их терминала
Внимание!!! 1 запуск лучше производить просто запустив файл mangosd
./mangosd
чтобы убедиться что все работает!

С незначительными правками и доплнениями взято из инструкции Sin(модератора RMDC)


UDB

UDB- результат слияния Modb и SDB. "Базой" стала Modb и в нее основатели добавили некоторый пре-TBC контент из SDB. Нельзя сказать, что это было обьединение разработчиков, это было слияние людей, занимающихся исправлениями обеих баз.
На данный момент сообщество насчитывает около 8000 человек.

Является наиболее приближенной к официальному серверу Blizzard по наполнению.

  • Официальный сайт (англ)
  • Адрес UDB на Subversion


YTDB

Разработкой базы данных занимаются наши соотечественники.

  • Официальный сайт (рус)
  • Адрес YTDB на Subversion


NCDB

Проект Next Chapter Data Base отличает кросс-серверность. Разработчики сделали возможным её использование в четырех проектах(MaNGOS, Ascent, ArcEmu, Wcell). Проект существует год.

  • Официальный сайт (англ)
  • Адрес NCDB на Subversion [необходим аккаунт на официальном сайте]


PSDB

Проект Базы Данных для сервера MaNGOS. Существует уже два года. Отличается непостоянством состава команды разработчиков, быстрым внедрением нового контента.

  • Официальный сайт (англ)
  • Адрес PSDB на Subversion


Описание

Русифицированная Объединенная База Данных

Дополнение для русификации БД MaNGOS.

SVN:
svn checkout https://rudb.svn.sourceforge.net/svnroot/rudb


FAQ

Q: Я установил RuDB, а у меня по прежнему всё осталось непереведено.
A: Нужно почистить кеш (удалить папку Cache в папке игрового клиента).
Q:Будут ли корректно отображаться надписи на русском, если клиент английский?
A: Да, но только при условии, что в папке ..\World of Warcraft будет папка со шрифтами от RuWOW .
Q: Kогда создаёш чара с русским ником то он создаётся с именем "?????"
A:
PHP код:
ALTER DATABASE `characters` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Q: У меня пустая таблица creature_ai_texts
A: У вас не установлен АСИД
Q: У меня нету некоторых строк в creature_ai_texts
A: У вас не установлен NGP
Продолжение проблем и их решение будет пожже...
Правки
Если вы нашли какую-то не точность в переводе, либо грамматическую или орфографическую ошибку, оставляйте правку только в данном виде:
Пример:
Пропущена буква: entry - 541 таблица - mangos_string
до правки:
Код:
UPDATE `mangos_string` SET `content_loc8` = 'Здоровье (базовое): %u. (максимум): %u. (ткущее): %u.' WHERE `entry` =541;
после правки:
Код:
UPDATE `mangos_string` SET `content_loc8` = 'Здоровье (базовое): %u. (максимум): %u. (текущее): %u.' WHERE `entry` =541;


Описание

История Изменений проекта

ScriptDev2 является заменой библиотеке сценариев, поставляемой с MaNGOS( http://www.getMaNGOS.com ), написан на C++ и совместим с Windows и Linux. Он содержит скрипты для NPCs, события для Боссов, а теперь и Вещей. После компиляции ScriptDev2 автоматически запускается MaNGOS при старте.

Источник: http://www.scriptdev2.com


Windows

ScriptDev2 должен быть скомпилирован после MaNGOS : не раньше и не во время.

1) Загрузите MaNGOS (использу команду git clone)

2) Добавьте в исходники:

  • Создайте новую папку ниже "src\bindings\" исходных кодов MaNGOS и назовите её "ScriptDev2"
  • Скачайте ScriptDev2 из репозитория проекта https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2
  • Применитн Git патч - "git am src/bindings/ScriptDev2/patches/MaNGOS-yyyy-mm-dd-ScriptDev2.patch" где 'yyyy' это год, 'mm' месяц и 'dd' день вашего релиза MaNGOS из пункта 1
  • Скомпилируйте MaNGOS
  • Скомпилируйте ScriptDev2, используя ScriptVC70, ScriptVC80, or ScriptVC90 Solution, находящиеся в дирректории ScriptDev2 (это должно переписать MaNGOScript dllв дирректории output)

3) Создайте Базу Данных ScriptDev2, используя файл "sql\create_database.sql", затем примените "sql\scriptdev2_structure.sql" на эту БД.

4) Примените "sql\scriptdev2_script_texts.sql" на Вашу БД ScriptDev2.

5) По желанию примените скрипты ACID.

6) Примените "sql\MaNGOS_full_scripts.sql" на вашу Базу Данных MaNGOS.

7) Поместите файл "scriptdev2.conf" в дирректорию, содержащую файлы "MaNGOSd.conf" и "realmd.conf". Возможно, Вам придется отредактировать этот файл в соответствии с используемой Вами БД.
8) Run MaNGOSd from your output directory

Чтобы обновить ScriptDev2:

  • Все, что вам нужно сделать, это открыть src\bindings\ , нажмать правую кнопку мыши на папке ScriptDev2, выбрать "Обновить", а затем выполните шаги 4, 6, 7 и 8 еще раз. Вы всё еще должны компилировать MaNGOS раньше ScriptDev2 на Windows-платформе.

Для обновления Базы Данных Scriptdev2 вы можете:
a) применять только изменения, находящиеся в папке sql\update(файлы с именами rXXX_scriptdev2.sql должны быть применены к БД scriptdev2 db ,в то время как rXXX_MaNGOS.sql должны быть применены на БД MaNGOS)
б) заново примените "MaNGOS_full_scripts.sql" на вашу БД MaNGOS.

Источник: http://www.scriptdev2.com


Linux

ScriptDev2 должен быть скомпилирован после MaNGOS : не раньше и не во время.

1) Загрузите MaNGOS (использу команду git clone)

2) Добавьте в исходники:

  • Ассоциируйте (checkout) ScriptDev2 с "src/bindings/ScriptDev2" - "svn co https://scriptdev2.svn.sourceforge.n...oot/scriptdev2 src/bindings/ScriptDev2"
    SVN:
  • Примените MaNGOS-rXXXX-ScriptDev2.patch, где XXXX наиболее близкая к ревизии ваших исходников мангоса ревизия патча (должна быть младше ревизии исходников мангоса).
    GIT:
  • Примените Git патч - "git am src/bindings/ScriptDev2/patches/MaNGOS-yyyy-mm-dd-ScriptDev2.patch" где 'yyyy' это год, 'mm' месяц и 'dd' день вашего релиза MaNGOS из пункта 1
  • Скомпилируйте MaNGOS (ScriptDev2 будет автоматически построен)

3) Создайте Базу Данных ScriptDev2, используя файл "sql\create_database.sql", затем примените "sql\scriptdev2_structure.sql" на эту БД.

4) Примените "sql\scriptdev2_script_texts.sql" на Вашу БД ScriptDev2.

5) По желанию примените скрипты ACID.

6) Примените "sql\MaNGOS_full_scripts.sql" на вашу Базу Данных MaNGOS.

7) Поместите файл "scriptdev2.conf" в дирректорию, содержащую файлы "MaNGOSd.conf" и "realmd.conf". Возможно, Вам придется отредактировать этот файл в соответствии с используемой Вами БД.
8) Run MaNGOSd from your output directory

Чтобы обновить ScriptDev2:

  • Пройдите в дирректорию src/bindings/ScriptDev2 - "cd src/bindings/ScriptDev2"
  • Обновите ScriptDev2 - "svn up"

Для обновления Базы Данных Scriptdev2 вы можете:
a) применять только изменения, находящиеся в папке sql\update(файлы с именами rXXX_scriptdev2.sql должны быть применены к БД scriptdev2 db ,в то время как rXXX_MaNGOS.sql должны быть применены на БД MaNGOS)
б) заново примените "MaNGOS_full_scripts.sql" на вашу БД MaNGOS.

Источник: http://www.scriptdev2.com


Описание

ACID - инкапсуляция* информации БД для ScriptDev2. На текущий момент ACID содержит только скрипты EventAI, но в будущем разработчики планируют добавить открытые события и перенести весь текст, посылаемый клиенту в ACID для поддержки локализации.
Чтобы узнать больше, посетите http://forums.scriptdev2.com/index.php?showtopic=2057 .

Для детальной помощи, или если у вас есть комментарии, посетите форум ACID : http://forums.scriptdev2.com/index.php?showforum=32

ACID SVN : https://sd2-acid.svn.sourceforge.net/svnroot/sd2-acid/

*возможность сокрытия некоторых аспектов представления класса; при этом доступ к объектам осуществляется только посредством экспортируемых (exporting) операций

Источник: http://www.scriptdev2.com


Установка

Релизы ACID в основном состоят из двух частей- xxx_acid_yyy_MaNGOS.sql и xxx_acid_yyy_scriptdev.sql, где xxx это номер ревизии ACID, a yyy это номер ревизии ScriptDev2 на момент релиза ACID. Для установки ACID вы должны иметь *рабочую* инсталяцию MaNGOS и вашу любимую Базу Данных.
Возьмите последнюю копию ACID sql файлов из дирректории full_release/x.x.x/ на нашем SVN, где x.x.x это номер ревизии, так что для ревизии 0.0.1 вы будете смотреть в
https://sd2-acid.svn.sourceforge.net/svnroot/sd2-acid/full_release/0.0.1/.

  1. Убедитесь, что Ваша копия MaNGOS имеет полностью рабочие БД.
    После применения обновлений для MaNGOS и ScriptDev2 примените файлы ACID.
  2. Примените xxx_acid_yyy_MaNGOS.sql на вашу БД MaNGOS (По умолчанию называется MaNGOS)
  3. Примените xxx_acid_yyy_scriptdev.sql на вашу БД ScriptDev2 (По умолчанию называется scriptdev2 )
    ПОСЛЕ ОБНОВЛЕНИЯ ACID ВСЕГДА ЗАНОВО ПРИМЕНЯЙТЕ
    "MaNGOS_full_scripts.sql" ОТ ИСПОЛЬЗУЕМОГО ВАМИ ScriptDev2
    ДЛЯ ПРЕДОТВРАЩЕНИЯ ВОЗМОЖНЫХ ПРОБЛЕМ.
    ЗАПОМНИТЕ! SQL-файлы ACID ДОЛЖНЫ БЫТЬ ПРИМЕНЕНЫ ТОЛЬКО ПОСЛЕ ТОГО,
    КАК ВЫ БУДЕТЕ ИМЕТЬ РАБОЧУЮ БД MaNGOS ИЛИ ПОСЛЕ ОБНОВЛЕНИЯ ВАШЕЙ
    БД ДО СЛЕДУЮЩЕЙ ВЕРСИИ.

Когда все запросы применены, проверьте консоль MaNGOS на наличие строки "SD2: >> Loaded xxxx EventAI_Events" , xxxx это номер, количество загруженных скриптов.

Источник: http://www.scriptdev2.com


Описание

Heisei

Heisei - инкапсуляция* информации БД для ScriptDev2. Проект существует отдельно от ACID и является его прямым конкурентом. Лидер проекта знаменит противоречивой политикой реагирования на критику. В любом случае конкуренция рождает, будем надеяться, качество.

Чтобы узнать больше, посетите http://heisei-project.user-board.net.

*возможность сокрытия некоторых аспектов представления класса; при этом доступ к объектам осуществляется только посредством экспортируемых (exporting) операций


achievement_criteria_data

Таблица `Achievement_criteria_data`

Материал из MaNGOS Wiki

Перейти к: навигация , поиск

entry

идентификатор из Achievement.dbc

title

звание в игре при выполнение ачива (не точно) из CharTitles.dbc

item

итем получаймы по почте после выполнения ачива. Предмет из Item_template

sender

Получаете почту при выполнение ачива от нпс. Берётся из Creature_template

subject

...

text

Текс на почте


areatrigger_involvedrelation

Таблица `areatrigger_involvedrelation`

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

Если есть запись в таблице, то квест не будет выполнен, пока игрок не попадет в ареатригер. Квест при этом не сдается, а лишь выполняется условие.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 | Identifier
quest | int(11) | unsigned | NO | 0 | Quest Identifier

Описание полей таблицы

id

Идентификатор триггера (См. AreaTrigger.dbc).

quest

Идентификатор квеста (См. mangos.quest_template.entry).


areatrigger_tavern

Таблица `areatrigger_tavern`

Зоны гостиниц, в которых герой начнёт отдыхать.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 | Identifier, auto_increment
name | text |  | YES |  |

Описание полей таблицы

id

Идентификатор триггера гостиницы (См. AreaTrigger.dbc).

name

Название гостиницы.


areatrigger_teleport

Таблица `areatrigger_teleport`

Телепорт игрока при входе в зону тригера.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | mediumint(8) | unsigned | NO | 0 | Identifier
name | text | unsigned | NO | 0 |
required_level | tinyint(3) | unsigned | NO | 0 |
required_item | mediumint(8) | unsigned | NO | 0 |
target_map | mediumint(8) | unsigned | NO | 0 |
target_position_x | float |  | NO | 0 |
target_position_y | float |  | NO | 0 |
target_position_z | float |  | NO | 0 |
target_orientation | float |  | NO | 0 |

Описание полей таблицы

id

Номер тригера из (См. AreaTrigger.dbc).

name

Имя тригера.

required_level

Необходимый уровень игрока.

required_item

Необходимый предмет для входа в триггер (См. mangos.item_template.entry).

target_map

Идентификатор карты.

target_position_x

Координата X.

target_position_y

Координата Y.

target_position_z

Координата Z.

target_orientation

Ориентация цели триггера.


battleground_template

Таблица `battleground_template`

Шаблоны БГ.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO |  |
MinPlayersPerTeam | int(11) |  | NO |  |
MaxPlayersPerTeam | int(11) |  | NO |  |
MinLvl | int(11) |  | NO |  |
MaxLvl | int(11) |  | NO |  |
AllianceStartLoc | int(11) | unsigned | NO |  |
AllianceStartO | float |  | NO |  |
HordeStartLoc | int(11) | unsigned | NO |  |
HordeStartO | float |  | NO |  |

Описание полей таблицы

id

Номер батлграунда (См. BattlemasterList.dbc). Может принимать следующие значения:

1 - Alterac Valley
2 - Warsong Gulch
3 - Arathi Basin
4 - Nagrand Arena
5 - Blade's Edge Arena
6 - All Arenas
7 - Eye of the Storm

MinPlayersPerTeam

Минимальное количество игроков в команде.

MaxPlayersPerTeam

Максимальное количество игроков в команде.

MinLvl

Минимальный уровень, необходимый для участия в батлграунде.

MaxLvl

Максимальный уровень, допустимый для участия в батлграунде.

AllianceStartLoc

Номер стартовой локации для альянса (См. WorldSafeLocs.dbc).

AllianceStartO

Стартовая ориентация для альянса.

HordeStartLoc

Номер стартовой локации для орды (См. WorldSafeLocs.dbc).

HordeStartO

Стартовая ориентация для орды.


battlemaster_entry

Таблица `battlemaster_entry`

Соотношения: у какого моба можно записаться на какой баттлграунд.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 | Entry of a creature
bg_template | int(11) | unsigned | NO | 0 | Battleground template id

Описание полей таблицы

entry

Идентификатор существа (См. mangos.creature_template.entry).

bg_template

The battleground template ID.


command

Таблица `command`

Таблица команд доступных в игре.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
name | varchar(50) |  | NO |  |
security | tinyint(3) | unsigned | NO | 0 |
help | longtext |  | YES |  |

Описание полей таблицы

name

Имя команды, используеться игровым клиентом через чат, начинаеться комманда с ('.') (например /say .commands [параметры]).

security

Число, определяющее для какого уровня GM доступна данная команда. (См. realmd.account.gmlevel).

help

Текст описания, показываемый при вызове помощи по этой команде (например /say .help commands).


creature

Таблица `creature`

Содержит точки спавна и точки локации существ.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(10) | unsigned | NO |  | Global Unique Identifier
id | mediumint(8) | unsigned | NO | 0 | Creature Identifier
map | smallint(5) | unsigned | NO | 0 | Map Identifier
spawnMask | tinyint(3) | unsigned | NO | 1 |
phaseMask | smallint(5) | unsigned | NO | 1 |
modelid | mediumint(8) | unsigned | NO | 0 |
equipment_id | mediumint(9) | unsigned | NO | 0 |
position_x | float |  | NO | 0 |
position_y | float |  | NO | 0 |
position_z | float |  | NO | 0 |
orientation | float |  | NO | 0 |
spawntimesecs | int(10) | unsigned | NO | 120 |
spawndist | float |  | NO | 5 |
currentwaypoint | mediumint(8) | unsigned | NO | 0 |
curhealth | int(10) | unsigned | NO | 1 |
curmana | int(10) | unsigned | NO | 0 |
DeathState | tinyint(3) | unsigned | NO | 0 |
MovementType | tinyint(3) | unsigned | NO | 0 |

Описание полей таблицы

guid

Уникальный идентификатор существа.

id

Идентификатор шаблона существа (См. mangos.creature_template.entry).

map

Номер карты, на которой расположено сущестов.

spawnMask

Маска спавна существа:

1 - обычный
2 - героический
3 - обычный+героический

phaseMask

Маска действующей ауры:

1 - Виден всегда
2 - Effect #2 Apply Aura: ?? (Aura #261) (257)

Данная аура позволит увидеть вам объекты/юниты фаз 257 = 100000001 в двоичном формате. тоесть вы увидете все Го/юниты у которых в базе в поле phaseMask содержится или 1 = 000000001 или 256 = 100000000 Фаза определяется спеллами с аурами Aura (261) SPELL_AURA_PHASE которые вешаются на вас в каких либо ситуациях (завершение квеста, и прочее).

modelid

Номер модели для NPC, у 2-х существ с одинаковым шаблоном, могут быть разные модели. Особенности (См. MaNGOS.creature_model.entry).

equipment_id

Экипировка у NPC. (См. mangos.creature_equip_template.entry}.

position_x

Х координата существа.

position_y

Y координата существа.

position_z

Z координата существа.

orientation

Ориентация существа.

spawntimesecs

Время респавна в секундах.

spawndist

Определяет радиус, как далеко существо может уходить от точки спавна, и в каком регионе он может спавниться, если mangos.MovementType = 1.

currentwaypoint

Если существо имеет вэйпоинты, то это поле содержит номер текущего вэйпоинта, иначе равно 0.

curhealth

Текущее количество жизней существа.

curmana

Текущее количество маны существа.

DeathState

Мертво ли существо?

0 - нет
1 - да

MovementType

Тип движения существа:

IDLE_MOTION_TYPE      = 0
RANDOM_MOTION_TYPE    = 1
WAYPOINT_MOTION_TYPE  = 2


creature_addon

Таблица `creature_addon`

Поведение NPC в мире (маунт на котором сидит NPC, анимация NPC и т.д.).

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
guid | int(11) |  | NO | PRI | 0 |
mount | int(11) | unsigned | NO |  | 0 |
bytes0 | int(11) | unsigned | NO |  | 0 |
bytes1 | int(11) | unsigned | NO |  | 0 |
bytes2 | int(11) | unsigned | NO |  | 0 |
emote | int(11) | unsigned | NO |  | 0 |
auras | text |  | YES |  |

Описание полей таблицы

guid

Идентификатор NPC (См. mangos.creature.guid).

mount

Ездовое животное (ID модели существа) на котором сидит NPC (См. mangos.creature_template.modelid_m).

bytes0

The value here overrides the value for the creature's unit field UNIT_FIELD_BYTES_0.

List of known values and what their visual effects on the creature

bytes1

Поведение NPC:

0 | стоит
1 | сидит на земле
3 | лежит
5 | сидит на стуле
7 | показывать health bar пустым
8 | показывать существа на коленях
9 | Submerges the creature below the ground

(стул ставится отдельно, как ГО)

bytes2

The value here overrides the value for the creature's unit field UNIT_FIELD_BYTES_2.

List of known values and what their visual effects on the creature

emote

EMOTE_ONESHOT_NONE | 0
EMOTE_ONESHOT_TALK | 1
EMOTE_ONESHOT_BOW | 2
EMOTE_ONESHOT_WAVE | 3
EMOTE_ONESHOT_CHEER | 4
EMOTE_ONESHOT_EXCLAMATION | 5
EMOTE_ONESHOT_QUESTION | 6
EMOTE_ONESHOT_EAT | 7
EMOTE_STATE_DANCE | 10
EMOTE_ONESHOT_LAUGH | 11
EMOTE_STATE_SLEEP | 12
EMOTE_STATE_SIT | 13
EMOTE_ONESHOT_RUDE | 14
EMOTE_ONESHOT_ROAR | 15
EMOTE_ONESHOT_KNEEL | 16
EMOTE_ONESHOT_KISS | 17
EMOTE_ONESHOT_CRY | 18
EMOTE_ONESHOT_CHICKEN | 19
EMOTE_ONESHOT_BEG | 20
EMOTE_ONESHOT_APPLAUD | 21
EMOTE_ONESHOT_SHOUT | 22
EMOTE_ONESHOT_FLEX | 23
EMOTE_ONESHOT_SHY | 24
EMOTE_ONESHOT_POINT | 25
EMOTE_STATE_STAND | 26
EMOTE_STATE_READYUNARMED | 27
EMOTE_STATE_WORK | 28
EMOTE_STATE_POINT | 29
EMOTE_STATE_NONE | 30
EMOTE_ONESHOT_WOUND | 33
EMOTE_ONESHOT_WOUNDCRITICAL | 34
EMOTE_ONESHOT_ATTACKUNARMED | 35
EMOTE_ONESHOT_ATTACK1H | 36
EMOTE_ONESHOT_ATTACK2HTIGHT | 37
EMOTE_ONESHOT_ATTACK2HLOOSE | 38
EMOTE_ONESHOT_PARRYUNARMED | 39
EMOTE_ONESHOT_PARRYSHIELD | 43
EMOTE_ONESHOT_READYUNARMED | 44
EMOTE_ONESHOT_READY1H | 45
EMOTE_ONESHOT_READYBOW | 48
EMOTE_ONESHOT_SPELLPRECAST | 50
EMOTE_ONESHOT_SPELLCAST | 51
EMOTE_ONESHOT_BATTLEROAR | 53
EMOTE_ONESHOT_SPECIALATTACK1H | 54
EMOTE_ONESHOT_KICK | 60
EMOTE_ONESHOT_ATTACKTHROWN | 61
EMOTE_STATE_STUN | 64
EMOTE_STATE_DEAD | 65
EMOTE_ONESHOT_SALUTE | 66
EMOTE_STATE_KNEEL | 68
EMOTE_STATE_USESTANDING | 69
EMOTE_ONESHOT_WAVE_NOSHEATHE | 70
EMOTE_ONESHOT_CHEER_NOSHEATHE | 71
EMOTE_ONESHOT_EAT_NOSHEATHE | 92
EMOTE_STATE_STUN_NOSHEATHE | 93
EMOTE_ONESHOT_DANCE | 94
EMOTE_ONESHOT_SALUTE_NOSHEATH | 113
EMOTE_STATE_USESTANDING_NOSHEATHE | 133
EMOTE_ONESHOT_LAUGH_NOSHEATHE | 153
EMOTE_STATE_WORK_NOSHEATHE | 173
EMOTE_STATE_SPELLPRECAST | 193
EMOTE_ONESHOT_READYRIFLE | 213
EMOTE_STATE_READYRIFLE | 214
EMOTE_STATE_WORK_NOSHEATHE_MINING | 233
EMOTE_STATE_WORK_NOSHEATHE_CHOPWOOD | 234
EMOTE_zzOLDONESHOT_LIFTOFF | 253
EMOTE_ONESHOT_LIFTOFF | 254
EMOTE_ONESHOT_YES | 273
EMOTE_ONESHOT_NO | 274
EMOTE_ONESHOT_TRAIN | 275
EMOTE_ONESHOT_LAND | 293
EMOTE_STATE_AT_EASE | 313
EMOTE_STATE_READY1H | 333
EMOTE_STATE_SPELLKNEELSTART | 353
EMOTE_STATE_SUBMERGED | 373
EMOTE_ONESHOT_SUBMERGE | 374
EMOTE_STATE_READY2H | 375
EMOTE_STATE_READYBOW | 376
EMOTE_ONESHOT_MOUNTSPECIAL | 377
EMOTE_STATE_TALK | 378
EMOTE_STATE_FISHING | 379
EMOTE_ONESHOT_FISHING | 380
EMOTE_ONESHOT_LOOT | 381
EMOTE_STATE_WHIRLWIND | 382
EMOTE_STATE_DROWNED | 383
EMOTE_STATE_HOLD_BOW | 384
EMOTE_STATE_HOLD_RIFLE | 385
EMOTE_STATE_HOLD_THROWN | 386
EMOTE_ONESHOT_DROWN | 387
EMOTE_ONESHOT_STOMP | 388
EMOTE_ONESHOT_ATTACKOFF | 389
EMOTE_ONESHOT_ATTACKOFFPIERCE | 390
EMOTE_STATE_ROAR | 391
EMOTE_STATE_LAUGH | 392
EMOTE_ONESHOT_CREATURE_SPECIAL | 393

moveflags

Позволяет выбирать различные типы движения креатура.

   MOVEMENTFLAG_NONE           = 0x00000000,
   MOVEMENTFLAG_FORWARD        = 0x00000001,
   MOVEMENTFLAG_BACKWARD       = 0x00000002,
   MOVEMENTFLAG_STRAFE_LEFT    = 0x00000004,
   MOVEMENTFLAG_STRAFE_RIGHT   = 0x00000008,
   MOVEMENTFLAG_LEFT           = 0x00000010,
   MOVEMENTFLAG_RIGHT          = 0x00000020,
   MOVEMENTFLAG_PITCH_UP       = 0x00000040,
   MOVEMENTFLAG_PITCH_DOWN     = 0x00000080,
   MOVEMENTFLAG_WALK_MODE      = 0x00000100,               // Walking
   MOVEMENTFLAG_ONTRANSPORT    = 0x00000200,               // Used for flying on some creatures
   MOVEMENTFLAG_LEVITATING     = 0x00000400,
   MOVEMENTFLAG_FLY_UNK1       = 0x00000800,
   MOVEMENTFLAG_JUMPING        = 0x00001000,
   MOVEMENTFLAG_UNK4           = 0x00002000,
   MOVEMENTFLAG_FALLING        = 0x00004000,
   // 0x8000, 0x10000, 0x20000, 0x40000, 0x80000, 0x100000
   MOVEMENTFLAG_SWIMMING       = 0x00200000,               // appears with fly flag also
   MOVEMENTFLAG_FLY_UP         = 0x00400000,
   MOVEMENTFLAG_CAN_FLY        = 0x00800000,
   MOVEMENTFLAG_FLYING         = 0x01000000,
   MOVEMENTFLAG_FLYING2        = 0x02000000,               // Actual flying mode
   MOVEMENTFLAG_SPLINE         = 0x04000000,               // used for flight paths
   MOVEMENTFLAG_SPLINE2        = 0x08000000,               // used for flight paths
   MOVEMENTFLAG_WATERWALKING   = 0x10000000,               // prevent unit from falling through water
   MOVEMENTFLAG_SAFE_FALL      = 0x20000000,               // active rogue safe fall spell (passive)
   MOVEMENTFLAG_UNK3           = 0x40000000

auras

Аура, которая может быть использована. Вставляйте сюда неотформатированный текст. Синтаксис: "<spell ID> <index>".

  • Каждое заклинание может иметь максимум три эффекта, так что эффект индекса может быть только 0, 1 или 2.

Для добавления новой магии нужно использовать пробел.

Примеры:

  • Аура паладина.
  • '16380 0 ' - Делает существо невидимым.
  • '18950 0 18950 1 ' - Делает существо способным видить другие невидимые цели (персонажей или существ).


creature_ai_scripts

Event AI Guide

Примечание: Это руководство подразумевает то, что у вас установлен ScriptDev2 Rev 220+.Здесь не рассказывается о помощи при установке Sctiptdev2.

Ревизия SD2,при которой это руководство было напечатано: 553

Объяснение событий

  • 0 = EVENT_T_TIMER: ВО ВРЕМЯ БОЯ! - Происходит сначала между (Param1) и (Param2), затем между каждым (Param3) и (Param4).
    • Parameter 1: InitialMin (начальный минимум)
    • Parameter 2: InitialMax (начальный максимум)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 1 = EVENT_T_TIMER_OOC: ВНЕ БОЯ! - Происходит сначала между (Param1) и (Param2), затем между каждым (Param3) и (Param4).
    • Parameter 1: InitialMin (начальный минимум)
    • Parameter 2: InitialMax (начальный максимум)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 2 = EVENT_T_HP: Происходит , когда ХП существа между (Param1) и (Param2). Будет повторяться между (Param3) и (Param4).
    • Parameter 1: HPMax% (ХП максимум%)
    • Parameter 2: HPMin% (ХП минимум%)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 3 = EVENT_T_MANA: Происходит в момент , когда Мана существа между (Param1) и (Param2). Будет повторяться каждый (Param3) и (Param4).
    • Parameter 1: ManaMax% (Мана максимум%)
    • Parameter 2: ManaMin% (Мана минимум%)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 4 = EVENT_T_AGGRO: Происходит при первоначальном аггро(не повторяется).
  • 5 = EVENT_T_KILL: ВО ВРЕМЯ БОЯ! - Происходит при убийстве игрока.Будет повторяться между(Param1) и (Param2).
    • Parameter 1: RepeatMin (минимум для повтора)
    • Parameter 2: RepeatMax (максимум для повтора)
  • 6 = EVENT_T_DEATH: Происходит при смерти существа.
  • 7 = EVENT_T_EVADE: Происходит когда существо возвращаеться на место спавна. Часто используеться для существ с фазами, позволяет сбросить фазы до нуля после вайпа (для предотвращения странного поведения).
  • 8 = EVENT_T_SPELLHIT: Происходит при попадании спелла.Если (param1)- будет происходить только для этого заклинания. Если (param2)- будет происходить для заклинаний этой школы . Будет повторяться каждые (Param3) и (Param4) .
    • Parameter 1: SpellID (номер заклинания)
    • Parameter 2: School (школа заклинания)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 9 = EVENT_T_RANGE: ВО ВРЕМЯ БОЯ! - Происходит когда дистанция цели , набравшей больше всех угрозы больше чем (Param1) и меньше чем (Param2). Будет повторяться каждые (Param3) и (Param4) .
    • Parameter 1: MinDist (минимальная дистанция)
    • Parameter 2: MaxDist (максимальная дистанция)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 10 = EVENT_T_OOC_LOS: ВНЕ БОЯ! - Происходит когда игрок приближается на видимую дистанцию к существу. Не происходит для враждебных игроков если (Param1) не равен 0. Не происходит для дружественных игроков если (Param2) не равен 0. Будет повторяться между (Param3) и (Param4) . Не происходит для существ или питомцев, а также если существо в бою.
    • Parameter 1: NoHostile (НеВраждебный)
    • Parameter 2: NoFriendly (НеДружественный)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 11 = EVENT_T_SPAWNED: Происходит на начальном спавне и при респавне существа (полезно для задания Дистанционного типа движения или призыва Пета при спавне)
  • 12 = EVENT_T_TARGET_HP: ВО ВРЕМЯ БОЯ! - Происходит когда ХП цели между (Param1) и (Param2). Будет повторяться каждый (Param3) и (Param4) .
    • Parameter 1: HPMax% (ХП максимум%)
    • Parameter 2: HPMin% (ХП минимум%)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 13 = EVENT_T_TARGET_CASTING: ВО ВРЕМЯ БОЯ! - Происходит когда игрок кастует заклинание. Будет повторяться между каждым (Param1) и (Param2) .
    • Parameter 1: RepeatMin (минимум для повтора)
    • Parameter 2: RepeatMax (максимум для повтора)
  • 14 = EVENT_T_FRIENDLY_HP: ВО ВРЕМЯ БОЯ! - Происходит когда дружестенный юнит в радиусе (param2) потерял хотя бы (param1) ХП. Будет повторяться каждый (Param3) и (Param4) .
    • Parameter 1: HPDeficit (недостаток ХП)
    • Parameter 2: Radius (радиус)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 15 = EVENT_T_FRIENDLY_IS_CC: ВО ВРЕМЯ БОЯ! - Происходит когда дружественного юнита контролят массовыми спелами в данном радиусе (param2). Будет повторяться каждый(Param3) и (Param4) .
    • Parameter 1: DispelType (тип диспелла)
    • Parameter 2: Radius (радиус)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 16 = EVENT_T_MISSING_BUFF: Происходит когда у дружественного юнита нету ауры , данной заклинанием (param1) в радиусе (param2). Будет повторяться каждый (Param3) и (Param4) .
    • Parameter 1: SpellId (ID спелла)
    • Parameter 2: Radius (радиус)
    • Parameter 3: RepeatMin (минимум для повтора)
    • Parameter 4: RepeatMax (максимум для повтора)
  • 17 = EVENT_T_SUMMONED_UNIT: Происходит после того как существо с ентри (Param1) спавнится или для любых спавнов если param1 = 0. Будет повторяться каждый (Param2) и (Param3) .
    • Parameter 1: CreatureId - (ID существа за респавном которого наблюдаем для срабатывания события)
    • Parameter 2: RepeatMin (повтор минимума)
    • Parameter 3: RepeatMax (повтор максимума)

Объяснение действий

  • 0 = ACTION_T_NONE: Ничего не делает!
  • 1 = ACTION_T_SAY: Когда активировано ,существо скажет определённый текст.
    • Parameter 1: ID текста к локализованному ентри текста которое существо должно сказать.
  • 2 = ACTION_T_YELL: Тоже самое что и выше, однако существо будет кричать.
    • Parameter 1: ID текста к локализованному ентри текста которое существо должно крикнуть.
  • 3 = ACTION_T_TEXTEMOTE: Когда активировано , существо сделает текстовую эмоцию используя определённый текст.Текстовая эмоция - это то , что вы видите использкя команду /me.
    • Parameter 1: ID текста к локализованному ентри текста , которое существо должно использовать что бы сделать текстовую эмоцию. ПРИМЕЧАНИЕ: Текст должен быть написан, учитывая что имя существа будет первым словом или словами в предложении(например, "делает текстовую эмоцию" будет появляться как "XYZ делает текстовую эмоцию" для существа называемого XYZ).
  • 4 = ACTION_T_SOUND: Когда активировано, существо будет играть определённый звук.
    • Parameter 1: ID звука.Звуковые ID содержаться в DBC файлах.
  • 5 = ACTION_T_EMOTE: Когда активировано,существо будет выполнять визуальную эмоцию. В отличии от текстовой эмоции,визуальная эмоция одна из тех , где существо будет двигаться или выполнять жест.
    • Parameter 1: ID эмоции , которое существо должно выполнить.ID эмоций содержатся в DBC , но также могут быть найдены и в исходниках мангоса.
  • 6 = ACTION_T_RANDOM_SAY: Аналогично действию ACTION_T_SAY , когда это действие активировано оно будет рандомно выбирать ентри текста для разговора(/say). Это действие требует заполнения всех трёх параметров , оно будет выбирать рандомное ентри из трёх. ПРИМЕЧАНИЕ: (1)
    • Parameter 1: ID текста в локализованному ентри текста, которое существо должно сказать при выборе один.
    • Parameter 2: ID текста в локализованному ентри текста, которое существо должно сказать при выборе два.
    • Parameter 3: ID текста в локализованному ентри текста, которое существо должно сказать при выборе три.
  • 7 = ACTION_T_RANDOM_YELL: Аналогично действию ACTION_T_YELL , когда это действие активировано оно будет рандомно выбирать ентри текста для крика. Это действие требует заполнения всех трёх параметров , оно будет выбирать рандомное ентри из трёх. ПРИМЕЧАНИЕ: (1)
    • Parameter 1: ID текста в локализованному ентри текста, которое существо должно крикнуть при выборе один.
    • Parameter 2: ID текста в локализованному ентри текста, которое существо должно крикнуть при выборе два.
    • Parameter 3: ID текста в локализованному ентри текста, которое существо должно крикнуть при выборе три.
  • 8 = ACTION_T_RANDOM_TEXTEMOTE: Аналогично действию ACTION_T_TEXTEMOTE , когда это действие активировано оно будет рандомно выбирать ентри текста для эмоции. Это действие требует заполнения всех трёх параметров , оно будет выбирать рандомное ентри из трёх. ПРИМЕЧАНИЕ: (1)
    • Parameter 1: ID текста в локализованному ентри текста, которое существо должно использовать для эмоции при выборе один.
    • Parameter 2: ID текста в локализованному ентри текста, которое существо должно использовать для эмоции при выборе два.
    • Parameter 3: ID текста в локализованному ентри текста, которое существо должно использовать для эмоции при выборе три.
  • 9 = ACTION_T_RANDOM_SOUND: Аналогично действию ACTION_T_SOUND , когда это действие активировано оно будет рандомно выбирать ентри звука для проигрывания. Это действие требует заполнения всех трёх параметров , оно будет выбирать рандомное ентри из трёх. ПРИМЕЧАНИЕ: (1)
    • Parameter 1: ID звука для игры при выборе один.
    • Parameter 2: ID звука для игры при выборе два.
    • Parameter 3: ID звука для игры при выборе три.
  • 10 = ACTION_T_RANDOM_EMOTE: Аналогично действию ACTION_T_EMOTE , когда это действие активировано оно будет рандомно выбирать ентри эмоции для визуальной эмоции. Это действие требует заполнения всех трёх параметров , оно будет выбирать рандомное ентри из трёх. ПРИМЕЧАНИЕ: (1)
    • Parameter 1: ID эмоции , которое существо должен выполнить при выборе один.
    • Parameter 2: ID эмоции , которое существо должен выполнить при выборе два.
    • Parameter 3: ID эмоции , которое существо должен выполнить при выборе три.
  • 11 = ACTION_T_CAST: Когда активировано существо будет кастовать заклинание выбранное по ID заклинания на цель выбранную по типа цели.
    • Parameter 1: ID заклинания используется для каста. Значение, используемое в этом поле должно быть корректным ID заклинания.
    • Parameter 2: Тип цели определяющий на какое существо оно должно кастоваться. Значение в этом поле должно быть корректным типом цели.Значения можно увидеть в справочных таблицах ниже.
    • Parameter 3: Это поле может содержать только 0 или 1. Если это один, то каст заклинания будет прерывать все заклинания , находящиеся в процессе каст; если существо уже кастует заклинание и указан 0 , это действие будет пропущено.
  • 12 = ACTION_T_SUMMON: Когда активировано , существо будет призывать другое существо в своё место,призванное существо будет атаковать определённую цель.
    • Parameter 1: ID существа которое будет призвано. Значение должно быть корректным ID существа.
    • Parameter 2: Тип цели, который будет атаковать призванное существо.Значение в этом поле должно быть корректным значение , приведённым в справочных таблицах ниже. ПРИМЕЧАНИЕ: использование типа цели 0 заставит призванное существо никого не атаковать.
    • Parameter 3: Период до того , как призванное существо будет отозвано.Значение здесь должно быть в миллисекундах или 0.Если будет стоять 0 , то существа не будет отозвано пока не покинет бой .
  • 13 = ACTION_T_THREAT_SINGLE_PCT: Когда активировано, существо будет изменять значение аггро цели в аггро листе существа на определённый процент.
    • Parameter 1: Процент аггро который должен быть изменён. Значение в этом поле может варьироваться от -100 до 100. Если оно отрицательное, аггро будет уменьшено и если оно положительное, аггро будет добавлено.
    • Parameter 2: Тип цели, определяющий на ком изменение аггро должно осуществиться. Значение в этом поле должен быть корректным.Указано в справочных таблицах ниже.
  • 14 = ACTION_T_THREAT_ALL_PCT: Когда активировано, это действие будет изменять аггро для всех находящихся в аггро листе существа на определённый процент.
    • Parameter 1: Процент который используется в изменение аггро всех находящихся в аггро листе существа. Значение может варьироваться от -100 до 100. ПРИМЕЧАНИЕ: Использование -100 заставит существо сбросить аггро ко всем к 0 , т.е. каждый будет иметь одинаковое значение аггро. Оно не делает никаких изменений к тем, кто находится в списке аггро.
  • 15 = ACTION_T_QUEST_EVENT: Когда активировано, это действие будет завершать внешние задачи для выполнения квеста для цели , выбранной по типу цели.Это действие применимо только к игрокам ,удостоверьтесь что тип цели будет указывать на игрока.
    • Parameter 1: ID квеста. Значение в этом поле должно быть корректным ID квеста. Квест должен иметь специальный флаг | 2 для завершения внешним эвентом.
    • Parameter 2: Тип цели, выбираемой для кого должен быть завершён квест. Значение в этом поле должно быть корректным типом цели , указанным в справочных таблицах ниже.
  • 16 = ACTION_T_CASTCREATUREGO: Когда активировано, это действие вызовет функцию CastedCreatureOrGO() для игрока. Может быть использовано, чтобы дать квестовую составляющую, такую как каст заклинания на определённое существо.
    • Parameter 1: ID квеста. Значение в этом поле должно быть корректным ID квеста.
    • Parameter 2: ID спелла, использующееся для симуляции каста. Значение в этом полле должно быть корректным ID заклинания.
    • Parameter 3: Тип цели, выбираемый для кого должна срабатывать квестовая составляющая. Значение в этом поле должно быть корректным типом цели , указанным в справочных таблицах ниже.
  • 17 = ACTION_T_SET_UNIT_FIELD: Когда активировано, это действие может поменять значения Unit полей цели . Более подробная информация о значениях этих полей может быть найдена в таблице базы данных characters
    • Parameter 1: Значение в этом поле может быть изменено. Используйте таблицу базы данных characters для просмотров индексов и тем, чем они управляют.


creature_ai_summons

Поле | Тип | Пусто
id | int(11) | NO
position_x | float | NO
position_y | float | NO
position_z | float | NO
orientation | float | NO
spawntimesecs | int(11) | NO
comment | varchar(255) | NO

Описание полей таблицы

id

!Нет описания!

position_x

!Нет описания!

position_y

!Нет описания!

position_z

!Нет описания!

orientation

!Нет описания!

spawntimesecs

!Нет описания!

comment

Комментарий.


creature_ai_texts

Поле | Тип | Пусто
entry | int(11) | NO
content_default | text | NO
content_loc1 | text | NO
content_loc2 | text | NO
content_loc3 | text | NO
content_loc4 | text | NO
content_loc5 | text | NO
content_loc6 | text | NO
content_loc7 | text | NO
content_loc8 | text | NO
sound | mediumint(8) | NO
type | tinyint(3) | NO
language | tinyint(3) | NO
emote | tinyint(3) | NO
comment | text | NO


creature_equip_template

Таблица `creature_equip_template`

Хранятся шаблоны снаряжения для NPC. (3.0.3)

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 | Uniqueentry
equipentry1 | int(11) | unsigned | NO | 0 |
equipentry2 | int(11) | unsigned | NO | 0 |
equipentry3 | int(11) | unsigned | NO | 0 |

Описание полей таблицы

entry

Идентификатор снаряжения.

equipentry1

Номер первой модели вооружения NPC (правая рука) (берется entry из таблицы item_template).

equipentry2

Номер второй модели вооружения NPC (левая рука) (берется entry из таблицы item_template).

equipentry3

Номер третьей модели вооружения NPC (дистанционный бой - луки, арбалеты, ружья и т.п.) (берется entry из таблицы item_template).

См. так же UDB Wiki creature_equip_template


creature_involvedrelation

Таблица `creature_involvedrelation`

NPC, принимающие квесты

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 | Identifier
quest | int(11) | unsigned | NO | 0 | Quest Identifier

Описание полей таблицы

id

Идентификатор NPC (См. mangos.creature_template.entry).

quest

Идентификатор квеста (См. mangos.quest_template.entry).


creature_loot_template

Таблица `creature_loot_template`

Лут, падающий с мобов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 |
ChanceOrQuestChance | float |  | NO | 100 |
groupid | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 1 |
maxcount | tinyint(3) | unsigned | NO | 1 |
lootcondition | tinyint(3) | unsigned | NO | 0 |
condition_value1 | int(11) | unsigned | NO | 0 |
condition_value2 | int(11) | unsigned | NO | 0 |

Описание полей таблицы

entry

Идентификатор лута (См. mangos.creature_template.lootid)

item

Идентификатор предмета (См. mangos.item_template.entry).

ChanceOrQuestChance

Шанс выпадения итема в процентах (0..100). если значение меньше ноля - квестовый лут в %.

groupid

Номер группы вещи.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

lootcondition

Это поле условия выпадения данной вещи. Может принимать следующие значения:

Значение | Описание | Коментарий
0 | CONDITION_NONE | Постоянный дроп
1 | CONDITION_AURA | Для лута итема на игроке должна быть определённая аура
2 | CONDITION_ITEM | Игрок должен иметь опредёлонное количество заданных вещей, чтобы упала эта вещь
3 | CONDITION_ITEM_EQUIPPED | На игроке должна быть одета определённая вещь
4 | CONDITION_ZONEID | Player must be in a certain zone
5 | CONDITION_REPUTATION_RANK | Player must have a certain reputation rank with a certain faction
6 | CONDITION_TEAM | Игрок должен принадлежать одной из сторон (Орде или Альянсу)
7 | CONDITION_SKILL | Должен иметь определённое значение навыка
8 | CONDITION_QUESTREWARDED | Игрок должен закончить определённый квест, прежде чем ему сможет выпасть этот итем
9 | CONDITION_QUESTTAKEN | Игрок должен иметь определённый квест

Примечание: это поле не используется в случае групп-лута и должно быть равно 0.

condition_value

Уточнение условия лута для каждого из возможных условий:

  • CONDITION_AURA
    • condition_value1: spell ID, при ауре от котрого игроку будет выпадать вещь.
    • condition_value2: The effect index of the spell that applied the aura (0, 1, or 2)
  • CONDITION_ITEM
    • condition_value1: ID вещи
    • condition_value2: количество
  • CONDITION_ITEM_EQUIPPED
    • condition_value1: ID вещи
    • condition_value2: Всегда равно 0
  • CONDITION_ZONEID
    • condition_value1: ID зоны
    • condition_value2: Всегда равно 0
  • CONDITION_REPUTATION_RANK
    • condition_value1: ID фракции
    • condition_value2: Минимальный ранг
  • CONDITION_TEAM
    • condition_value1: Сторона игрока (469 - Альянс, 67 - Орда)
    • condition_value2: Всегда равно 0
  • CONDITION_SKILL
    • condition_value1: ID скилла из SkillLine.dbc
    • condition_value2: Необходимый уровень скила
  • CONDITION_QUESTREWARDED
    • condition_value1: ID квеста
    • condition_value2: Всегда равно 0
  • CONDITION_QUESTTAKEN
    • condition_value1: ID квеста
    • condition_value2: Всегда равно 0

Примечание: это поле не используется в случае групп-лута и должно быть равно 0.


creature_model_info

Таблица `creature_model_info`

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

Поле | Тип | Пусто | Key | Дефолт | Экстра
modelid | int(11)unsigned | NO | PRI | 0 |
bounding_radius | float | NO |  | 0 |
combat_reach | float | NO |  | 0 |
gender | tinyint(2)unsigned | NO |  | 0 |
modelid_other_gender | int(11)unsigned | NO |  | 0 |

Описание полей таблицы

modelid

Display ID (См. CreatureDisplayInfo.dbc)

bounding_radius

Радиус ближней атаки.

combat_reach

Радиус аггро.

gender

Половая принадлежность данного существа

0 - Мужской
1 - Женский
2 - Пусто

modelid_other_gender

Величина, которая может указывать на display id другого пола (например, женского), если creature_model_info.modelid имеет display id мужского (или наоборот).


creature_movement

Таблица `creature_movement`

Содержит описание движения NPC.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 | Identifier
point | int(11) | unsigned | NO | 0 |
position_x | float |  | NO | 0 |
position_y | float |  | NO | 0 |
position_z | float |  | NO | 0 |
waittime | int(5) | unsigned | NO | 0 |
text1 | varchar(255) |  | YES |  |
text2 | varchar(255) |  | YES |  |
text3 | varchar(255) |  | YES |  |
text4 | varchar(255) |  | YES |  |
text5 | varchar(255) |  | YES |  |
emote | int(10) | unsigned | YES | 0 |
spell | int(5) | unsigned | YES | 0 |
wpguid | int(11) |  | YES | 0 |
orientation | float |  | YES | 0 |
model1 | int(11) |  | YES | 0 |
model2 | int(11) |  | YES | 0 |

Описание полей таблицы

id

Идентификатор NPC (См.mangos.creature.guid). ВНИМАНИЕ! Не template.entry!

point

Номер поинта. Существо идет по поинтами по очереди (1,2,3 и т.д.).

position_x

Координаты поинта по оси Х.

position_y

Координаты поинта по оси Y.

position_z

Координаты поинта по оси Z.

waittime

Время в миллисекундах, сколько NPC будет стоять на поинте.

text1-5

Текст, который NPC будет говорить, когда придёт на указанный поинт.

emote

Эмоция, которая будет сделана, когда NPC придёт на указанный поинт.

spell

Магия, которая будет скастована, когда NPC придёт на указанный поинт.

wpguid

Waypoint guid. Идентификатор вейпоинта.

orientation

Ориентация в точке.

model1

Модель, на которую измениться оригинальная модель существа после попадания на указанный поинт.

model2

Модель, на которую измениться оригинальная модель существа после попадания на указанный поинт.


creature_onkill_reputation

Таблица `creature_onkill_reputation`

Таблица хранит данные о получаемой/отнимаемой репутации при убийстве NPC.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
creature_id | int(10) | unsigned | NO | 0 | Creature Identifier
RewOnKillRepFaction1 | int(10) |  | YES | 0 |
RewOnKillRepFaction2 | int(10) |  | YES | 0 |
MaxStanding1 | tinyint(1) |  | YES | 0 |
IsTeamAward1 | tinyint(1) |  | YES | 0 |
RewOnKillRepValue1 | int(10) |  | YES | 0 |
MaxStanding2 | tinyint(1) |  | YES | 0 |
IsTeamAward2 | tinyint(1) |  | YES | 0 |
RewOnKillRepValue2 | int(10) |  | YES | 0 |
TeamDependent | tinyint(1) | unsigned | NO | 0 |

Описание полей таблицы

creature_id

Идентификатор NPC (См. mangos.creature_template.entry).

RewOnKillRepFaction1

Идентификатор 1-й фракции. См. Faction.dbc.

RewOnKillRepFaction2

Идентификатор 2-й фракции. См. Faction.dbc.

MaxStanding1

Максимальный ранг репутации у первой фракции.

ID | Ранг | Значение
0 | Hated | Ненавистный
1 | Hostile | Враждебный
2 | Unfriendly | Недружественный
3 | Neutral | Нейтральный
4 | Friendly | Дружественный
5 | Honored | Уважаемый
6 | Revered | Почитаемый
7 | Exalted | Боготворимый

IsTeamAward1

Распределяется на группу?

0 - нет
1 - да

RewOnKillRepValue1

Значение репутации для 1-ой фракции.

MaxStanding2

Максимальный ранг репутации у второй фракции.

IsTeamAward2

Распределяется на группу?

0 - нет
1 - да

RewOnKillRepValue2

Значение репутации для 2-ой фракции.

TeamDependent

Зависит ли от фракции игрока (Альянс, Орда)?
Если значение 1, то для Альянса считается только первая репутация, а для Орды - вторая.
Если значение 0, то и для Альянса и для Орды считаются обе репутации.


ReputationRank

ReputationRank

ID | Ранг | Значение
0 | Hated | Ненавистный
1 | Hostile | Враждебный
2 | Unfriendly | Недружественный
3 | Neutral | Нейтральный
4 | Friendly | Дружественный
5 | Honored | Уважаемый
6 | Revered | Почитаемый
7 | Exalted | Боготворимый


creature_questrelation

Таблица `creature_questrelation`

NPC, дающие квест.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 | Identifier
quest | int(11) | unsigned | NO | 0 | Quest Identifier

Описание полей таблицы

id

Идентификатор NPC (См. mangos.creature_template.entry).

quest

Идентификатор квеста (См. mangos.quest_template.entry).


creature_respawn

Таблица `creature_respawn`

Содержит время респавна NPC.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
respawntime | bigint(40) |  | NO | 0 |
instance | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guid

Идентификатор NPC (См. mangos.creature.guid).

respawntime

Время респавна в Unix времени.

instance

Инстанция, в котором респавнится существо (См. mangos.instance.id).


creature_template

Таблица `creature_template`

Содержит описание шаблона NPC.

Внимание! Добавилось поле AIname, которое заменило ScriptName.
ScriptName теперь привязан у SD2.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
heroic_entry | int(11) | unsigned | NO | 0 |
modelid_A | int(11) | unsigned | YES | 0 |
modelid_H | int(11) | unsigned | YES | 0 |
name | varchar(100) |  | NO | 0 |
subname | varchar(100) |  | YES |  |
IconName | char(100) |  | YES |  |
minlevel | tinyint(3) | unsigned | YES | 1 |
maxlevel | tinyint(3) | unsigned | YES | 1 |
minhealth | int(5) | unsigned | YES | 0 |
maxhealth | int(5) | unsigned | YES | 0 |
minmana | int(5) | unsigned | YES | 0 |
maxmana | int(5) | unsigned | YES | 0 |
armor | int(10) | unsigned | NO | 0 |
faction_A | int(4) | unsigned | YES | 0 |
faction_H | int(4) | unsigned | YES | 0 |
npcflag | int(4) | unsigned | YES | 0 |
speed | float |  | YES | 0 |
scale | float |  | NO | 0 |
rank | tinyint(3) | unsigned | YES | 0 |
mindmg | float |  | YES | 0 |
maxdmg | float |  | YES | 0 |
dmgschool | tinyint(1) |  | YES | 0 |
attackpower | int(10) | unsigned | NO | 0 |
baseattacktime | int(4) | unsigned | YES | 0 |
rangeattacktime | int(4) | unsigned | YES | 0 |
flags | int(11) | unsigned | YES | 0 |
dynamicflags | int(11) | unsigned | YES | 0 |
family | int(11) |  | YES | 0 |
bounding_radius | float |  | YES | 0 |
trainer_type | tinyint(3) |  | YES | 0 |
trainer_spell | int(11) | unsigned | YES | 0 |
class | tinyint(3) | unsigned | YES | 0 |
race | tinyint(3) | unsigned | YES | 0 |
minrangedmg | float |  | NO | 0 |
maxrangedmg | float |  | NO | 0 |
rangedattackpower | smallint(5) | unsigned | NO | 0 |
combat_reach | float |  | NO | 0 |
type | tinyint(3) | unsigned | YES | 0 |
civilian | tinyint(3) | unsigned | NO | 0 |
flag1 | int(11) | unsigned | YES | 0 |
equipmodel1 | int(10) | unsigned | NO | 0 |
equipmodel2 | int(10) | unsigned | NO | 0 |
equipmodel3 | int(10) | unsigned | NO | 0 |
equipinfo1 | int(10) | unsigned | NO | 0 |
equipinfo2 | int(10) | unsigned | NO | 0 |
equipinfo3 | int(10) | unsigned | NO | 0 |
equipslot1 | int(11) |  | NO | 0 |
equipslot2 | int(11) |  | NO | 0 |
equipslot3 | int(11) |  | NO | 0 |
lootid | int(10) | unsigned | NO | 0 |
pickpocketloot | int(10) | unsigned | NO | 0 |
skinloot | int(10) | unsigned | NO | 0 |
resistance1 | int(10) | unsigned | NO | 0 |
resistance2 | int(10) | unsigned | NO | 0 |
resistance3 | int(10) | unsigned | NO | 0 |
resistance4 | int(10) | unsigned | NO | 0 |
resistance5 | int(10) | unsigned | NO | 0 |
resistance6 | int(10) | unsigned | NO | 0 |
spell1 | int(11) | unsigned | NO | 0 |
spell2 | int(11) | unsigned | NO | 0 |
spell3 | int(11) | unsigned | NO | 0 |
spell4 | int(11) | unsigned | NO | 0 |
mingold | int(30) | unsigned | NO | 0 |
maxgold | int(30) | unsigned | NO | 0 |
AIName | varchar(128) |  | NO |  |
MovementType | tinyint(3) | unsigned | NO | 0 |
InhabitType | tinyint(1) | unsigned | NO | 3 |
RacialLeader | tinyint(1) | unsigned | NO | 0 |
RegenHealth | tinyint(1) | unsigned | NO | 1 |
equipment_id | int(11) | unsigned | NO | 0 |
mechanic_immune_mask | int(11) | unsigned | NO | 0 |
ScriptName | varchar(128) |  | NO |  |

Описание полей таблицы

entry

Уникальный идентификатор шаблона NPC.

heroic_entry

Уникальный идентификатор шаблона NPC для Героического режима данжей.

modelid_A

Номер модели для NPC мужского пола.

modelid_H

Номер модели для NPC женского пола.

name

Имя NPC.

subname

Подпись к имени NPC.

IconName

Внешний вид указателя при наведении на NPC, используется в Гуардах

minlevel

Минимальный уровень NPC.

maxlevel

Максимальный уровень NPC.

minhealth

Минимальное число здоровья NPC.

maxhealth

Максимальное число здоровья NPC.

minmana

Минимальное число маны NPC.

maxmana

Максимальное число маны NPC.

armor

Броня NPC.

faction_A

Фракция NPC (Согласно MaNGOSproject.org ID берется из FactionTemplate.dbc, а не из Faction.dbc)

faction_H

Фракция NPC (Согласно MaNGOSproject.org ID берется из FactionTemplate.dbc, а не из Faction.dbc)

npcflag

NPC-Флаг. Любой NPC может содержать любой набор флагов. Значением для поля является сумма значений флагов.

Тип | Значение | Комментарий
UNIT_NPC_FLAG_NONE | 0 | Ты не можешь разговаривать с NPC.
UNIT_NPC_FLAG_GOSSIP | 1 | Ты можешь разговаривать с NPC.
UNIT_NPC_FLAG_QUESTGIVER | 2 | Этот NPC может дать тебе квест.
UNIT_NPC_FLAG_TRAINER | 16 | Тренер. Этот NPC может обучить вас некоторым спеллам.
UNIT_NPC_FLAG_VENDOR | 128 | Продавец.
UNIT_NPC_FLAG_ARMORER | 4096 | Ремонтник. У этого NPC ты можешь отремонтировать свои вещи.
UNIT_NPC_FLAG_TAXIVENDOR | 8192 | Грифон-мастер и другие мастеры полётов
UNIT_NPC_FLAG_SPIRITHEALER | 16384 | Призрак на кладбище (виден только для мертвых)
UNIT_NPC_FLAG_SPIRITGUIDE | 32768 | Призрак на Батллграунде (виден только для мертвых)
UNIT_NPC_FLAG_INNKEEPER | 65536 | Инкипер, хозяин гостиницы. Ты можешь дать ему свой heartstone
UNIT_NPC_FLAG_BANKER | 131072 | Банкир
UNIT_NPC_FLAG_PETITIONER | 262144 | NPC, принимающий петицию для создания гильдий.
UNIT_NPC_FLAG_TABARDVENDOR | 524288 | NPC, создающий и продающий накидки для гильдий.
UNIT_NPC_FLAG_BATTLEFIELDPERSON | 1048576 | Баттлмастер. принимает на Warsong и другие баттлграунды.
UNIT_NPC_FLAG_AUCTIONEER | 2097152 | Аукционер.
UNIT_NPC_FLAG_STABLE | 4194304 | Стэйбл Мастер. Охотник может оставить своих петов у него.
UNIT_NPC_FLAG_GUARD | 268435456 | Гвард, охранник (может оказать помощь в поиске NPC, места).

speed

Скорость передвиженя NPC.

scale

Размер существа. Если = 0, то данные берутся из DBC.

rank

Ранг NPC

0 | Normal | Обычный
1 | Elite | Элитный
2 | RareElite | Редкий Элитный
3 | WorldBoss | Мировой Босс
4 | Rare | Редкий

mindmg

Минимальный урон.

maxdmg

Максимальный урон.

dmgschool

Тип повреждений наносимых NPC

Тип | Значение
SPELL_SCHOOL_NORMAL | 0
SPELL_SCHOOL_HOLY | 1
SPELL_SCHOOL_FIRE | 2
SPELL_SCHOOL_NATURE | 3
SPELL_SCHOOL_FROST | 4
SPELL_SCHOOL_SHADOW | 5
SPELL_SCHOOL_ARCANE | 6

attackpower

Сила атаки NPC.

baseattacktime

Кол-во милисекунд, через которое NPC нанесет след. удар ближним оружием.

rangeattacktime

Кол-во милисекунд, через которое NPC нанесет след. удар дальним оружием.

unit_flags

Flag | Name | Описание
0x00000001 | UNIT_FLAG_UNKNOWN7 |
0x00000002 | UNIT_FLAG_NON_ATTACKABLE | Нельзя аттаковать NPC
0x00000004 | UNIT_FLAG_DISABLE_MOVE | NPC не двигается
0x00000008 | UNIT_FLAG_UNKNOWN1 | Для всех юнитов, делает цель атакуемой даже если она дружественна, в некоторых случаях...
0x00000010 | UNIT_FLAG_RENAME |
0x00000020 | UNIT_FLAG_RESTING |
0x00000040 | UNIT_FLAG_UNKNOWN9 |
0x00000080 | UNIT_FLAG_UNKNOWN10 |
0x00000100 | UNIT_FLAG_UNKNOWN2 | 2.0.8
0x00000200 | UNIT_FLAG_UNKNOWN11 |
0x00000400 | UNIT_FLAG_LOOTING | loot animation
0x00000800 | UNIT_FLAG_PET_IN_COMBAT | in combat?, 2.0.8
0x00001000 | UNIT_FLAG_PVP |
0x00002000 | UNIT_FLAG_SILENCED | silenced, 2.1.1
0x00004000 | UNIT_FLAG_UNKNOWN4 | 2.0.8
0x00008000 | UNIT_FLAG_UNKNOWN13 | позволяет мобу плавать (возможно еще что то)
0x00010000 | UNIT_FLAG_UNKNOWN14 |
0x00020000 | UNIT_FLAG_PACIFIED |
0x00040000 | UNIT_FLAG_DISABLE_ROTATE | stunned, 2.1.1
0x00080000 | UNIT_FLAG_IN_COMBAT |
0x00100000 | UNIT_FLAG_UNKNOWN15 | mounted? 2.1.3, probably used with 0x4 flag
0x00200000 | UNIT_FLAG_DISARMED | запрещает каст мили спеллов..., "Required melee weapon" added to melee spells tooltip.
0x00400000 | UNIT_FLAG_CONFUSED |
0x00800000 | UNIT_FLAG_FLEEING |
0x01000000 | UNIT_FLAG_UNKNOWN5 | used in spell Eyes of the Beast for pet...
0x02000000 | UNIT_FLAG_NOT_SELECTABLE | Нельзя выделить NPC
0x04000000 | UNIT_FLAG_SKINNABLE |
0x08000000 | UNIT_FLAG_MOUNT | the client seems to handle it perfectly
0x10000000 | UNIT_FLAG_UNKNOWN17 |
0x20000000 | UNIT_FLAG_UNKNOWN6 | used in Feing Death spell
0x40000000 | UNIT_FLAG_SHEATHE |

dynamicflags

Флаги, которые управляют визуальным проявлениями существа.

Flag | Name | Описание
1 | UNIT_DYNFLAG_LOOTABLE |
2 | UNIT_DYNFLAG_TRACK_UNIT |
4 | UNIT_DYNFLAG_OTHER_TAGGER | Вынуждает имя существ стать серым (хорошо для моделирования мертвых существ)
8 | UNIT_DYNFLAG_ROOTED |
16 | UNIT_DYNFLAG_SPECIALINFO |
32 | UNIT_DYNFLAG_DEAD | Вынуждает существа проявить смерть (это не делает имя существа серым)

family

Семейство NPC.

Тип | Значение
1 | Wolf
2 | Cat
3 | Spider
4 | Bear
5 | Boar
6 | Crocolisk
7 | Carrion Bird
8 | Crab
9 | Gorilla
11 | Raptor
12 | Tallstrider
15 | Felhunter
16 | Voidwalker
17 | Succubus
19 | Doomguard
20 | Scorpid
21 | Turtle
23 | Imp
24 | Bat
25 | Hyena
26 | Owl
27 | Wind Serpent
28 | Remote Control
29 | Felguard
30 | Dragonhawk
31 | Ravager
32 | Warp Stalker
33 | Sporebat
34 | Nether Ray
35 | Serpent

bounding_radius

Радиус, с которого вы можете быть атакованы.

trainer_type

Тип тренера. (Используется, если NPC - тренер). Может принимать значения:

ИД | Название | Значение
0 | TRAINER_TYPE_CLASS | Учит спеллам только класс, указанный в поле class
1 | TRAINER_TYPE_MOUNTS | Учит спеллам только расу, указанную в поле race
2 | TRAINER_TYPE_TRADESKILLS | Тренер профессий. Игрок должен знать trainer_spell
3 | TRAINER_TYPE_PETS | Тренер петов только для класса охотник. Поле class должно быть равно HUNTER

trainer_spell

Используется если NPC - тренер, и его тип - TRADESKILL. Игрок должен знать спелл указанный здесь, для обучения у тренера.

class

Если NPC - тренер, и тип - CLASS или PETS, то здесь указывается класс, который может обучаться у этого тренера.

race

Если NPC - тренер, и тип - MOUNTS, то здесь указывается раса, которая может обучаться у этого тренера.

minrangedmg

Минимальный урон, наносимый дистанционной атакой.

maxrangedmg

Максимальный урон, наносимый дистанционной атакой.

rangedattackpower

Сила дистанционной атаки.

combat_reach

Расстояние, с которого NPC может ударить игрока.

type

Тип NPC.

1 | Beast
2 | Dragonkin
3 | Demon
4 | Elemental
5 | Giant
6 | Undead
7 | Humanoid
8 | Critter
9 | Mechanical
10 | Not specified
11 | Totem
12 | Non-combat Pet
13 | Gas Cloud

civilian

Является ли NPC штатским?

0 - нет
1 - да

type_flags

Специфические флаги для моба

Флаг | Описание
1 | Можно приручить (должно обладать типом 1 - "Beast").
2 |
8 |

lootid

Идентификатор лута (См. creature_loot_template.entry).

pickpocketloot

Идентификатор лут-воровства (См. Pickpocketing_loot_template.entry).

skinloot

Идентификатор лут-кожевничества (См. skinning_loot_template.entry).

resistance1

Holy стойкость.

resistance2

Fire стойкость.

resistance3

Nature стойкость.

resistance4

Frost стойкость.

resistance5

Shadow стойкость.

resistance6

Arcane стойкость.

spell1-spell4

Номера спеллов которые будет использовать NPC.

mingold

Минимальное количество денег в бронзе, которое может оказаться в трупе.

maxgold

Максимальное количество денег в бронзе, которое может оказаться в трупе.

AIName

Имя функции AI, используемой существом.

MovementType

Тип передвижения существа по умолчанию.

0 - не двигается
1 - двигается сам по себе (случайно)
2 - двигается по вэйпоинтам (См. mangos.creature_movement)

InhabitType

Значением для поля является сумма значений флагов.

Флаг | Значение
1 | может ходить (или летать над землёй)
2 | может плавать (или летать над водой)
3 | 1 + 2 - может ходить и плавать (или летать)
4 | может летать (анимация полёта)

RacialLeader

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

RegenHealth

Скорость восстановления жизни.

equipment_id

Оружие у NPC.

mechanic_immune_mask

Виды иммунитета для NPC

ScriptName

Имя cкрипта, который использует NPC...


creature_template_addon

Таблица `creature_template_addon`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) |  | NO | 0 |
mount | int(11) | unsigned | NO | 0 |
bytes0 | int(11) | unsigned | NO | 0 |
bytes1 | int(11) | unsigned | NO | 0 |
bytes2 | int(11) | unsigned | NO | 0 |
emote | int(11) | unsigned | NO | 0 |
auras | text |  | YES |  |

Описание полей таблицы

entry

Идентификатор шаблона NPC (См. mangos.creature_template.entry).

mount

!Нет описания!

bytes0

!Нет описания!

bytes1

!Нет описания!

bytes2

!Нет описания!

emote

!Нет описания!

moveflags

Позволяет выбирать различные типы движения креатура.

   MOVEMENTFLAG_NONE           = 0x00000000,
   MOVEMENTFLAG_FORWARD        = 0x00000001,
   MOVEMENTFLAG_BACKWARD       = 0x00000002,
   MOVEMENTFLAG_STRAFE_LEFT    = 0x00000004,
   MOVEMENTFLAG_STRAFE_RIGHT   = 0x00000008,
   MOVEMENTFLAG_LEFT           = 0x00000010,
   MOVEMENTFLAG_RIGHT          = 0x00000020,
   MOVEMENTFLAG_PITCH_UP       = 0x00000040,
   MOVEMENTFLAG_PITCH_DOWN     = 0x00000080,
   MOVEMENTFLAG_WALK_MODE      = 0x00000100,               // Walking
   MOVEMENTFLAG_ONTRANSPORT    = 0x00000200,               // Used for flying on some creatures
   MOVEMENTFLAG_LEVITATING     = 0x00000400,
   MOVEMENTFLAG_FLY_UNK1       = 0x00000800,
   MOVEMENTFLAG_JUMPING        = 0x00001000,
   MOVEMENTFLAG_UNK4           = 0x00002000,
   MOVEMENTFLAG_FALLING        = 0x00004000,
   // 0x8000, 0x10000, 0x20000, 0x40000, 0x80000, 0x100000
   MOVEMENTFLAG_SWIMMING       = 0x00200000,               // appears with fly flag also
   MOVEMENTFLAG_FLY_UP         = 0x00400000,
   MOVEMENTFLAG_CAN_FLY        = 0x00800000,
   MOVEMENTFLAG_FLYING         = 0x01000000,
   MOVEMENTFLAG_FLYING2        = 0x02000000,               // Actual flying mode
   MOVEMENTFLAG_SPLINE         = 0x04000000,               // used for flight paths
   MOVEMENTFLAG_SPLINE2        = 0x08000000,               // used for flight paths
   MOVEMENTFLAG_WATERWALKING   = 0x10000000,               // prevent unit from falling through water
   MOVEMENTFLAG_SAFE_FALL      = 0x20000000,               // active rogue safe fall spell (passive)
   MOVEMENTFLAG_UNK3           = 0x40000000

auras

Устанавливает ауры на NPC.
Сначала идет номер спелла, затем индекс эффекта у спелла. (эффекты начинаются с 0, всего может быть 3 эффекта(0,1,2)).
Например:

ID - 46302 K'iru's Song of Victory ()
--------------------------
K'iru's presence increases your Stamina by $s2 and your Intellect by $s1.

У спелла 2 эффекта, первый на стамину, второй на интелект.
Допустим мы хотим чтобы на мобе действовали оба эффекта, тогда пишем:

46302 0 46302 1

Или например только стамина:

46302 0

Или только интелект:

46302 1

Еще пара простых примеров:

1086 0 - Повесит Demon Armor ранга 2
37497 0 - Повесит Shadowmoon Ghost Invisibility


db_version

Таблица `db_version`

Хранит строку с информацией о текущей версии базы данных. Данные выводятся при запуске сервера. Рекомендуется обновлять значения для каждой базы (проекта) при обновлении.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
version | varchar(120) |  | YES |  |

Описание полей таблицы

version

Строка с информацией о текущей версии базы данных.


disenchant_loot_template

Таблица `disenchant_loot_template`

Таблица лута дизэнчанта.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 | Recommended id selection: item_level*100+item_quality
item | int(11) | unsigned | NO | 0 |
ChanceOrRef | float |  | NO | 100 |
QuestChanceOrGroup | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 1 |
maxcount | tinyint(3) | unsigned | NO | 1 |
quest_freeforall | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

entry

Идентификатор лута (См. mangos.item_template.DisenchantID).

item

Идентификатор предмета (См. mangos.item_template.entry).

ChanceOrRef

Шанс выпадения предмета в процентах (0..100).
Или ссылка на другой лут entry, если значение меньше нуля (-entry).

QuestChanceOrGroup

Всегда равен -1. Выпадает максимум один предмет из всего лута.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

quest_freeforall

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


event_scripts

Таблица `event_scripts`

Эта таблица одна из 5 таблиц активирующих скрипты

gameobject_scripts: необходим 1 тип ГО GAMEOBJECT_TYPE_BUTTON (1).
spell_scripts: необходимо присутствие у спелла SPELL_EFFECT_SCRIPT_EFFECT (77).
quest_start_scripts: Активация скрипта при взятии квеста.
quest_end_scripts: Активация скрипта при сдаче квеста.
event_scripts: необходимо присутствие у спелла SPELL_EFFECT_SEND_EVENT (61).

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
delay | int(11) | unsigned | NO | 0 |
command | int(11) | unsigned | NO | 0 |
datalong | int(11) | unsigned | NO | 0 |
datalong2 | int(11) | unsigned | NO | 0 |
datatext | text |  | NO |  |
x | float |  | NO | 0 |
y | float |  | NO | 0 |
z | float |  | NO | 0 |
o | float |  | NO | 0 |

Описание полей таблицы

id

Номер miscValue из Spell.dbc (необходимо наличие в спелле SPELL_EFFECT_SEND_EVENT 61 для command=10).

delay

Время задержки перед выполнением скрипта.

command

Константа, определяющая тип скрипта, и смысл остальных полей.

Может принимать следующие значения:

SCRIPT_COMMAND_SAY | 0 | Говорить
SCRIPT_COMMAND_EMOTE | 1 | Проявить эмоцию
SCRIPT_COMMAND_FIELD_SET | 2 | Установить поле
SCRIPT_COMMAND_MOVE_TO | 3 | Двигаться
SCRIPT_COMMAND_FLAG_SET | 4 | Установить флаг(двоичный?)
SCRIPT_COMMAND_FLAG_REMOVE | 5 | Снять флаг
SCRIPT_COMMAND_TELEPORT_TO | 6 | Телепортироваться
SCRIPT_COMMAND_QUEST_EXPLORED | 7 | Завершение квестов (на экскорт)?
SCRIPT_COMMAND_RESPAWN_GAMEOBJECT | 9 | Респавн объекта
SCRIPT_COMMAND_TEMP_SUMMON_CREATURE | 10 | Призвать существо
SCRIPT_COMMAND_OPEN_DOOR | 11 | Открыть дверь
SCRIPT_COMMAND_CLOSE_DOOR | 12 | Закрыть дверь

datalong

command | смысл поля
0 | игнорируется
1 | ИД эмоции из dbc
2 | Индекс поля
3 | игнорируется
4 | Индекс поля
5 | Индекс поля
6 | Номер Карты
10 | Идентификатор существа

datalong2

command | смысл поля
0 | игнорируется
1 | игнорируется
2 | значение поля
3 | Время движения
4 | устанавливаемый флаг
5 | удаляемый флаг
6 | игнорируется
10 | Время присутствия существа в мире после каста

datatext

command | смысл поля
0 | произносимый текст
1,2,3,4,5,6,10 | игнорируется

x

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | x-координата для результата действия скрипта

y

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | y-координата для результата действия скрипта

z

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | z-координата для результата действия скрипта

o

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | ориентация для результата действия скрипта


exploration_basexp

Таблица `exploration_basexp`

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

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
level | tinyint(2) |  | NO | PRI | 0 |
basexp | int(11) |  | NO |  | 0 |

Описание полей таблицы

level

Уровень персонажа.

basexp

Количество опыта.

Игрок получает опыт за открытие, только если его уровень отличается от уровня зоны, не более чем на 5.


fishing_loot_template

Таблица `fishing_loot_template`

Таблица лута рыбалки.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 |
ChanceOrRef | float |  | NO | 100 |
QuestChanceOrGroup | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 5 |
maxcount | tinyint(3) | unsigned | NO | 7 |
quest_freeforall | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

entry

Идентификатор зоны рыбалки (см. ZoneId из AreaTable.dbc).

item

Идентификатор предмета (См. mangos.item_template.entry).

ChanceOrRef

Шанс выпадения предмета в процентах (0..100).
Или ссылка на другой лут entry, если значение меньше нуля (-entry).

QuestChanceOrGroup

Квестовый шанс дропа в процентах (0..100).
Или группа дропа, если значение меньше нуля. Выпадает максимум один предмет из группы.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

quest_freeforall

Определяет, как будет лутиться квестовый предмет.

1 - предмет для каждого, кто с квестом.
0 - только для одного, кто с квестом.


game_event

Таблица `game_event`

Таблица эвент-системы. Содержит описания событих, периодически происходящих в мире.

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
entry | mediumint(8) | unsigned | NO | PRI |  | Уникальный идентификатор события
start | timestamp |  | YES |  | 0000-00-0000:00:00 | Дата начала события (эвента). Раньше указанного времени не произойдет
end | timestamp |  | YES |  | 0000-00-0000:00:00 | Дата окончания события (эвента). Раньше указанного времени не окончиться.
occurence | bigint(20) | unsigned | NO |  | 5184000 | Перерыв между событиями в минутах
length | bigint(20) | unsigned | NO |  | 2592000 | Продолжительность события в минутах
description | varchar(255) |  | YES |  |  | Описание события. Показывается в консоли.

Описание полей таблицы

entry

Уникальный идентификатор события.

start

Дата начала события (эвента). Раньше указанного времени не произойдет.

end

Дата окончания события (эвента). Раньше указанного времени не окончиться.

occurence

Перерыв между событиями в минутах (1440 = 1 день, 2880 = 2 дня и т.д).

length

Продолжительность события в минутах (1440 = 1 день, 2880 = 2 дня и т.д).

description

Описание события. Показывается в консоли.


game_event_creature

Таблица `game_event_creature`

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

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(10) | unsigned | NO |  |
event | mediumint(9) |  | NO | 0 | Put negatives values to remove during event

Описание полей таблицы

guid

Глобальный идентификатор NPC (См. mangos.creature.guid).

event

Идентификатор события (См. mangos.game_event.entry).

Если значение с минусом, то NPC удаляется на время события.


game_event_creature_quest

Таблица `game_event_creature_quest`

Хранит связь между NPC и эвентовыми квестами.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
quest | int(11) | unsigned | NO | 0 |
event | mediumint(9) | unsigned | NO | 0 |

Описание полей таблицы

id

Идентификатор NPC (см. creature_template.entry).

quest

Идентификатор квеста (см. quest_template.entry).

event

Идентификатор эвента (см. game_event.entry).


game_event_gameobject

Таблица `game_event_gameobject`

Содержит гуиды объектов, появляющихся/исчезающих во время периодических событий (ивентов).

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(10) | unsigned | NO |  |
event | mediumint(9) |  | NO | 0 | Put negatives values to remove during event

Описание полей таблицы

guid

Глобальный идентификатор ГО (См. mangos.gameobject.guid).

event

Идентификатор события (См. mangos.game_event.entry).

Если значение с минусом, то ГО удаляется на время события.


game_event_model_equip

Таблица `game_event_model_equip`

Хранит данные о моделях и экипировке NPC во время эвентов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 |
modelid | int(11) | unsigned | NO | 0 |
equipment_id | int(11) | unsigned | NO | 0 |
event | mediumint(9) | unsigned | NO | 0 |

Описание полей таблицы

guid

Идентификатор NPC (См. creature.guid).

modelid

Идентификатор модели.

equipment_id

Идентификатор снаряжения (См. creature_equip_template.entry).

event

Идентификатор эвента (См. game_event.entry).


game_graveyard_zone

Таблица `game_graveyard_zone`

Описывает привязку зон к кладбищам.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
ghost_map | int(11) | unsigned | NO | 0 |
ghost_zone | int(11) | unsigned | NO | 0 |
faction | int(11) | unsigned | NO | 0 |

Описание полей таблицы

id

Идентификатор кладбища (См. WorldSafeLocs.dbc).

ghost_map

Номер карты привязки кладбища.

ghost_zone

Номер зоны привязки кладбища.

faction

Фракция, которая может использовать кладбище:

0   - Любая фракция
67  - только Орда
469 - только Альянс


game_tele

Таблица `game_tele`

Содержит информацию о координатах телепортации которые используются игровыми мастерами (Game Masters - GM).

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
id | int(11) | unsigned | NO | PRI |  |
position_x | float |  | NO |  | 0 |
position_y | float |  | NO |  | 0 |
position_z | float |  | NO |  | 0 |
orientation | float |  | NO |  | 0 |
map | int(11) | unsigned | NO |  | 0 |
name | varchar(100) |  | NO |  |  |

Описание полей таблицы

id

Порядковый номер телепорта (автозаполняется, при добавлении строчки выставлять значение NULL).

position_x

X координата телепорта.

position_y

Y координата телепорта.

position_z

Z координата телепорта.

orientation

Ориентация игрока после телепортации.

map

Идентификатор карты.

name

Название телепорта, игровым мастером используется как чат-комманда:

.tele name

Добавление новой точки телепортации

Пример добавления новой точки телепортации запросом MySQL:

INSERT INTO `game_tele` (`id`,`position_x`,`position_y`,`position_z`,`orientation`,`map`,`name`) VALUES
(NULL,'16669,6','-15896','71,6824','3,35913','451','designers island')

Для того, чтобы изменения вступили в силу необходимо перезапустить сервер.
Пример добавления новой точки телепортации из мира(чат-коммандой):

.addtele $  где $ - название телепорта

Информация, добавленная чат-коммандой, добавляется в таблицу с текущими координатами и ориентацией игрока и доступна без перезапуска сервера.


game_weather

Таблица `game_weather`

Содержит шансы различных погодных условий в зонах игры.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
zone | int(11) | unsigned | NO | 0 |
spring_rain_chance | tinyint(3) | unsigned | NO | 25 |
spring_snow_chance | tinyint(3) | unsigned | NO | 25 |
spring_storm_chance | tinyint(3) | unsigned | NO | 25 |
summer_rain_chance | tinyint(3) | unsigned | NO | 25 |
summer_snow_chance | tinyint(3) | unsigned | NO | 25 |
summer_storm_chance | tinyint(3) | unsigned | NO | 25 |
fall_rain_chance | tinyint(3) | unsigned | NO | 25 |
fall_snow_chance | tinyint(3) | unsigned | NO | 25 |
fall_storm_chance | tinyint(3) | unsigned | NO | 25 |
winter_rain_chance | tinyint(3) | unsigned | NO | 25 |
winter_snow_chance | tinyint(3) | unsigned | NO | 25 |
winter_storm_chance | tinyint(3) | unsigned | NO | 25 |

Описание полей таблицы

zone

Идентификатор зоны.

spring_rain_chance

Шанс весеннего дождя.

spring_snow_chance

Шанс весеннего снега.

spring_storm_chance

Шанс весеннего шторма.

summer_rain_chance

Шанс летнего дождя.

summer_snow_chance

Шанс летнего снега.

summer_storm_chance

Шанс летнего шторма.

fall_rain_chance

Шанс осеннего дождя.

fall_snow_chance

Шанс осеннего снега.

fall_storm_chance

Шанс осеннего шторма.

winter_rain_chance

Шанс зимнего дождя.

winter_snow_chance

Шанс зимнего снега.

winter_storm_chance

Шанс зимнего шторма.


gameobject

Таблица `gameobject`

Таблица определяет местоположение, ориентацию и другие характеристики игровых объектов.

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
guid | int(10) | unsigned | NO | PRI |  | Global Unique Identifier
id | int(10) | unsigned | NO |  | 0 | Gameobject Identifier
map | int(10) | unsigned | NO |  | 0 | Map Identifier
spawnMask | tinyint(3) | unsigned | NO | 1 |
phaseMask | smallint(5) | unsigned | NO | 1 |
position_x | float |  | NO |  | 0 |
position_y | float |  | NO |  | 0 |
position_z | float |  | NO |  | 0 |
orientation | float |  | NO |  | 0 |
rotation0 | float |  | NO |  | 0 |
rotation1 | float |  | NO |  | 0 |
rotation2 | float |  | NO |  | 0 |
rotation3 | float |  | NO |  | 0 |
spawntimesecs | int(10) | unsigned | NO |  | 0 |
animprogress | int(10) | unsigned | NO |  | 0 |
state | int(10) | unsigned | NO |  | 1 |

Описание полей таблицы

guid

Уникальный номер.

id

Идентификатор шаблона объекта (См. mangos.gameobject_template.entry).

map

Номер карты.

Маска спавна ГО:

1 - обычный
2 - героический
3 - обычный+героический

phaseMask

Маска действующей ауры:

1 - Виден всегда
2 - Effect #2 Apply Aura: ?? (Aura #261) (257)

Данная аура позволит увидеть вам объекты/юниты фаз 257 = 100000001 в двоичном формате. тоесть вы увидете все Го/юниты у которых в базе в поле phaseMask содержится или 1 = 000000001 или 256 = 100000000 Фаза определяется спеллами с аурами Aura (261) SPELL_AURA_PHASE которые вешаются на вас в каких либо ситуациях (завершение квеста, и прочее).

position_x

Позиция по Х координате.

position_y

Позиция по Y координате.

position_z

Позиция по Z координате.

orientation

Ориентация объекта.

rotation0

!Нет описания!

rotation1

!Нет описания!

rotation2

!Нет описания!

rotation3

!Нет описания!

spawntimesecs

Время респавна в секундах.

animprogress

Пока неизвестно для чего используется.

state

Только для сундуков (chests).

  • 1 = closed
  • 0 = open


gameobject_involvedrelation

Таблица `gameobject_involvedrelation`

Игровые объекты, принимающие (заверщающие) квест.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
quest | int(11) | unsigned | NO | 0 | Quest Identifier

Описание полей таблицы

id

Идентификатор игрового объекта (См. mangos.gameobject_template.entry).

quest

Идентификатор квеста (См. mangos.quest_template.entry).


gameobject_loot_template

Таблица `gameobject_loot_template`

Таблица лута игровых объектов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 |
ChanceOrRef | float |  | NO | 100 |
QuestChanceOrGroup | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 1 |
maxcount | tinyint(3) | unsigned | NO | 1 |
quest_freeforall | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

entry

Идентификатор лута (См. mangos.gameobject.loot).

item

Идентификатор предмета (См. mangos.item_template.entry).

ChanceOrRef

Шанс выпадения итема в процентах (0..100).
Или ссылка на другой лут entry, если значение меньше нуля (-entry).

QuestChanceOrGroup

Квестовый шанс дропа в процентах (0..100).
Или группа дропа, если значение меньше нуля. Выпадает максимум один предмет из группы.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

quest_freeforall

Определяет, как будет лутиться квестовый предмет.

1 - предмет только для одного, кто с квестом
0 - предмет для каждого в группе, кто с квестом


gameobject_questrelation

Таблица `gameobject_questrelation`

Объекты, дающие (начинающие) квест.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
quest | int(11) | unsigned | NO | 0 | Quest Identifier

Описание полей таблицы

id

Идентификатор объекта (См. mangos.gameobject_template.entry).

quest

Идентификатор квеста (См. mangos.quest_template.entry).


gameobject_respawn

Таблица `gameobject_respawn`

Содержит записи о времени респавна игровых объектов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
respawntime | bigint(40) |  | NO | 0 |
instance | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guid

Идентификатор объекта (См. mangos.gameobject.guid).

respawntime

Время респавна.

instance

Номер копии инста (См. mangos.instance.id).


gameobject_scripts

Таблица `gameobject_scripts`

Эта таблица одна из 5 таблиц активирующих скрипты

gameobject_scripts: необходим 1 тип ГО GAMEOBJECT_TYPE_BUTTON (1).
spell_scripts: необходимо присутствие у спелла SPELL_EFFECT_SCRIPT_EFFECT (77).
quest_start_scripts: Активация скрипта при взятии квеста.
quest_end_scripts: Активация скрипта при сдаче квеста.
event_scripts: необходимо присутствие у спелла SPELL_EFFECT_SEND_EVENT (61).

Обработки ГО типа кнопка/рычаг.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
delay | int(11) | unsigned | NO | 0 |
command | int(11) | unsigned | NO | 0 |
datalong | int(11) | unsigned | NO | 0 |
datalong2 | int(11) | unsigned | NO | 0 |
datatext | text |  | NO | 0 |
x | float |  | NO | 0 |
y | float |  | NO | 0 |
z | float |  | NO | 0 |
o | float |  | NO | 0 |

Описание полей таблицы

id

Идентификатор рычага/кнопки (ГО) (См. mangos.gameobject.guid).

delay

Задержка открытия в секундах.

command

0 - SCRIPT_COMMAND_SAY
1 - SCRIPT_COMMAND_EMOTE
2 - SCRIPT_COMMAND_FIELD_SET
3 - SCRIPT_COMMAND_MOVE_TO
4 - SCRIPT_COMMAND_FLAG_SET
5 - SCRIPT_COMMAND_FLAG_REMOVE
6 - SCRIPT_COMMAND_TELEPORT_TO
7 - SCRIPT_COMMAND_QUEST_EXPLORED
9 - SCRIPT_COMMAND_SUMMON_GAMEOBJECT
10 - SCRIPT_COMMAND_TEMP_SUMMON
11 - SCRIPT_COMMAND_OPEN_DOOR
12 - SCRIPT_COMMAND_CLOSE_DOOR

datalong

Идентификатор двери (ГО) (См. mangos.gameobject.guid).

datalong2

Время до закрытия двери (если < 5, то всеравно 5 секунд).

datatext

Используется для команды SCRIPT_COMMAND_SAY = 0 текст, который npc (ГО?) будет произносить.

x

Кординаты точки X.

y

Кординаты точки Y.

z

Кординаты точки Z.

o

Ориентация.


gameobject_template

Таблица `gameobject_template`

Cодержит шаблоны игровых объектов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(10) | unsigned | NO | 0 |
type | int(10) | unsigned | NO | 0 |
displayId | int(10) | unsigned | NO | 0 |
name | char(100) |  | NO | 0 |
faction | int(4) | unsigned | NO | 0 |
flags | int(4) | unsigned | NO | 0 |
size | float |  | NO | 1 |
data0 | int(10) | unsigned | NO | 0 |
data1 | int(10) | unsigned | NO | 0 |
data2 | int(10) | unsigned | NO | 0 |
data3 | int(10) | unsigned | NO | 0 |
data4 | int(10) | unsigned | NO | 0 |
data5 | int(10) | unsigned | NO | 0 |
data6 | int(10) | unsigned | NO | 0 |
data7 | int(10) | unsigned | NO | 0 |
data8 | int(10) | unsigned | NO | 0 |
data10 | int(10) | unsigned | NO | 0 |
data11 | int(10) | unsigned | NO | 0 |
data12 | int(10) | unsigned | NO | 0 |
data13 | int(10) | unsigned | NO | 0 |
data14 | int(10) | unsigned | NO | 0 |
data15 | int(10) | unsigned | NO | 0 |
data16 | int(10) | unsigned | NO | 0 |
data17 | int(10) | unsigned | NO | 0 |
data18 | int(10) | unsigned | NO | 0 |
data19 | int(10) | unsigned | NO | 0 |
data20 | int(10) | unsigned | NO | 0 |
data21 | int(10) | unsigned | NO | 0 |
data22 | int(10) | unsigned | NO | 0 |
data23 | int(10) | unsigned | NO | 0 |
ScriptName | char(100) |  | NO |  |

Описание полей таблицы

entry

Уникальный номер.

type

GAMEOBJECT_TYPE_DOOR               = 0
GAMEOBJECT_TYPE_BUTTON             = 1
GAMEOBJECT_TYPE_QUESTGIVER         = 2
GAMEOBJECT_TYPE_CHEST              = 3
GAMEOBJECT_TYPE_BINDER             = 4
GAMEOBJECT_TYPE_GENERIC            = 5
GAMEOBJECT_TYPE_TRAP               = 6
GAMEOBJECT_TYPE_CHAIR              = 7
GAMEOBJECT_TYPE_SPELL_FOCUS        = 8
GAMEOBJECT_TYPE_TEXT               = 9
GAMEOBJECT_TYPE_GOOBER             = 10
GAMEOBJECT_TYPE_TRANSPORT          = 11
GAMEOBJECT_TYPE_AREADAMAGE         = 12
GAMEOBJECT_TYPE_CAMERA             = 13
GAMEOBJECT_TYPE_MAP_OBJECT         = 14
GAMEOBJECT_TYPE_MO_TRANSPORT       = 15
GAMEOBJECT_TYPE_DUEL_ARBITER       = 16
GAMEOBJECT_TYPE_FISHINGNODE        = 17
GAMEOBJECT_TYPE_RITUAL             = 18
GAMEOBJECT_TYPE_MAILBOX            = 19
GAMEOBJECT_TYPE_AUCTIONHOUSE       = 20
GAMEOBJECT_TYPE_GUARDPOST          = 21
GAMEOBJECT_TYPE_SPELLCASTER        = 22
GAMEOBJECT_TYPE_MEETINGSTONE       = 23
GAMEOBJECT_TYPE_FLAGSTAND          = 24
GAMEOBJECT_TYPE_FISHINGHOLE        = 25
GAMEOBJECT_TYPE_FLAGDROP           = 26
GAMEOBJECT_TYPE_MINI_GAME          = 27
GAMEOBJECT_TYPE_LOTTERY_KIOSK      = 28
GAMEOBJECT_TYPE_CAPTURE_POINT      = 29
GAMEOBJECT_TYPE_AURA_GENERATOR     = 30
GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31
GAMEOBJECT_TYPE_UNK                = 32
GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33
GAMEOBJECT_TYPE_GUILD_BANK         = 34

displayId

Модель (См. GameObjectDisplayInfo.dbc).

name

Имя объекта.

faction

Номер фракции, в которой состоит ГО.

flags

  2 = Делает сундуки/двери заблокироваными (требует ключ, чтобы открыть)
  4 = Невозможно выделить
  8 = Транспорт (Объект который передвигается (лифт, лодка, дерижабль)
  32 = Не деспавнятся (Некогда не деспавнятся, в основном для дверей)
  64 = Тригер (typically, summoned objects. Triggered by spell or other events)

size

Размер.

data0.-23.

Для более полного описания полей, смотри Поля_GameObject

Поля определяются в зависимости от типа объекта:

  • GAMEOBJECT_TYPE_DOOR = 0
    • data0:
    • data1: Замок на дверь из Lock.dbc
    • data2: Флаги?
    • data3: noDamageImmune (Boolean flag)
    • data4: openTextID (Unknown Text ID)
    • data5: closeTextID (Unknown Text ID)

  • GAMEOBJECT_TYPE_BUTTON = 1
    • data0:
    • data1: Замок из Lock.dbc
    • data2: Flags???
    • data3: gameobject_template.entry - спавнится в это же место.
    • data4: Флаг баттлграунда?
    • data5: Есть ли эффект при удалении? (1 - да)
    • data6: openTextID (Unknown Text ID)
    • data7: closeTextID (Unknown Text ID)
    • data8: losOK (Boolean flag)

  • GAMEOBJECT_TYPE_QUESTGIVER = 2
    • data0: Замок Lock.dbc
    • data1: QuestLootID (идентификатор квеста, который даёт данный ГО. Если это следующий квест в цепочке, то данное значение должно совпадать с NextQuestInChain того квеста, который завершается этим ГО)
    • data2: Всегда 0
    • data3: QuestLootID (идентификатор квеста, с которого возьмётся награда за выполнение?)
    • data4: Есть ли эффект при удалении? (1 - да)
    • data5: noDamageImmune (Boolean flag)
    • data6: openTextID (Unknown Text ID)
    • data7: losOK (Boolean flag)
    • data8: allowMounted (Boolean flag)
    • data9: large? (Boolean flag)

  • GAMEOBJECT_TYPE_CHEST = 3
    • data0: Замок Lock.dbc
    • data1: Номер набора лута из этого сундука, береться из Gameobject_loot_template
    • data2:
    • data3:
    • data4: MinLoot ( Минимальное число удачных попыток лута объекта. При мининге, гербализме итд)
    • data5: MaxLoot ( Максимальное число удачных попыток лута объекта. При мининге, гербализме итд)
    • data6:
    • data7; gameobject_template.entry - спавнится в это же место.
    • data8: QuestID при этом квесте лут разрешен
    • data9: level (minimal level required to open this gameobject)
    • data10: losOK (Boolean flag)
    • data11: leaveLoot (Boolean flag)
    • data12: notInCombat (Boolean flag)
    • data13: log loot (Boolean flag)
    • data14: openTextID (Unknown ID)
    • data15: use group loot rules (Boolean flag)

  • GAMEOBJECT_TYPE_BINDER = 4

Тип объекта не используется.

  • GAMEOBJECT_TYPE_GENERIC = 5
    • data0: 1 - название объекта появляется над курсором. 0 - название в углу экрана
    • data1: 1 - активный, объект выделяется, выводится название. 0 - объект неактивен.
    • data2: 0 всегда
    • data3: иногда 1
    • data4: floatOnWater (Boolean flag)
    • data5: questID (Required active quest_template.entry to work)

  • GAMEOBJECT_TYPE_TRAP = 6
    • data0: Замок Lock.dbc
    • data1:
    • data2: Дистанция действия???
    • data3: SpellID - Идентификатор спелла
    • data4: charges (0 or 1)
    • data5: cooldown (time in seconds)
    • data6: ? (unknown flag)
    • data7: startDelay? (time in seconds)
    • data8: serverOnly? (always 0)
    • data9: stealthed (Boolean flag)
    • data10: large? (Boolean flag)
    • data11: stealthAffected (Boolean flag)
    • data12: openTextID (Unknown ID)

  • GAMEOBJECT_TYPE_CHAIR = 7
    • data0: 1,2,3 - игрок садится. 4 - игрок умирает при контакте с объектом (баг?)
    • data1: 1 или 2. Значение неизвестно.

  • GAMEOBJECT_TYPE_SPELL_FOCUS = 8
    • data0: Идентификатор из SpellFocusObject.dbc
    • data1: Дистанция действия??
    • data2: gameobject_template.entry - спавнится в это же место.

  • GAMEOBJECT_TYPE_TEXT = 9
    • data0: Page_text.entry
    • data1: unk
    • data2: ID из PageTextMaterial.dbc

  • GAMEOBJECT_TYPE_GOOBER = 10
    • data0: Замок Lock.dbc
    • data1: quest_template.entry
    • data2: eventID (Unknown Event ID таблица event_script)
    • data3: ? (unknown flag)
    • data4: customAnim (unknown) если сумонить моба то 1
    • data5: consumable (Boolean flag controling if gameobject will despawn or not)
    • data6: cooldown (time is seconds)
    • data7: pageID (page_text.entry)
    • data8: language (from Languages.dbc)
    • data9: pageMaterial (PageTextMaterial.dbc)
    • data10: spell (Spell Id from spell.dbc)
    • data11: noDamageImmune (Boolean flag)
    • data12: linkedTrap (gameobject_template.entry (Spawned GO type 6))
    • data13: large? (Boolean flag)
    • data14: openTextID (Unknown ID)
    • data15: closeTextID (Unknown ID)
    • data16: losOK (Boolean flag)

  • GAMEOBJECT_TYPE_TRANSPORT = 11

No data data used, all are always 0

  • GAMEOBJECT_TYPE_AREADAMAGE = 12

Object type not used

  • GAMEOBJECT_TYPE_CAMERA = 13
    • data0: open (LockId from Lock.dbc)
    • data1: camera (Cinematic entry from CinematicCamera.dbc)

  • GAMEOBJECT_TYPE_MAPOBJECT = 14

No data data used, all are always 0

  • GAMEOBJECT_TYPE_MOTRANSPORT = 15
    • data0: taxiPathID (Id from TaxiPath.dbc)
    • data1: moveSpeed
    • data2: accelRate

  • GAMEOBJECT_TYPE_DUELFLAG = 16

Only one Gameobject with this type (21680) and no data data

  • GAMEOBJECT_TYPE_FISHINGNODE = 17

Only one Gameobject with this type (35591) and no data data

  • GAMEOBJECT_TYPE_RITUAL = 18
    • data0: casters?
    • data1: spell (Spell Id from spell.dbc)
    • data2: animSpell (Spell Id from spell.dbc)
    • data3: ritualPersistent (Boolean flag)
    • data4: casterTargetSpell (Spell Id from spell.dbc)
    • data5: casterTargetSpellTargets (Boolean flag)
    • data6: castersGrouped (Boolean flag)

  • GAMEOBJECT_TYPE_MAILBOX = 19

No data data used, all are always 0

  • GAMEOBJECT_TYPE_AUCTIONHOUSE = 20
    • data0: actionHouseID (From AuctionHouse.dbc ?)

  • GAMEOBJECT_TYPE_GUARDPOST = 21

Object type not used

  • GAMEOBJECT_TYPE_SPELLCASTER = 22
    • data0: spell (Spell Id from spell.dbc)
    • data1: charges
    • data2: partyOnly (Boolean flag, need to be in group to use it)

  • GAMEOBJECT_TYPE_MEETINGSTONE = 23
    • data0: minlvl
    • data1: maxlvl
    • data2: areaID AreaTable.dbc

  • GAMEOBJECT_TYPE_FISHINGHOLE = 25
    • data0: radius
    • data1: lootId из Gameobject_loot_template
    • data2: minSuccessOpens
    • data3: maxSuccessOpens
    • data4: lockId из Lock.dbc
    • data5: noDamageImmune (Boolean flag)
    • data6: ?
    • data7: losOK (Boolean flag)

  • GAMEOBJECT_TYPE_FLAGDROP = 26
    • data0: open (LockId from Lock.dbc)
    • data1: eventID (Unknown Event ID)
    • data2: pickupSpell (Spell Id from spell.dbc)
    • data3: noDamageImmune (Boolean flag)

  • GAMEOBJECT_TYPE_MINIGAME = 27

Object type not used Reused in core for CUSTOM_TELEPORT

    • data0: areatrigger_teleport.id

  • GAMEOBJECT_TYPE_LOTTERYKIOSK = 28

Object type not used

  • GAMEOBJECT_TYPE_CAPTUREPOINT = 29
    • data0: radius (Distance)
    • data1: spell (Unknown ID, not a spell id in dbc file, maybe server only side spell)
    • data2: worldState1
    • data3: worldstate2
    • data4: winEventID1 (Unknown Event ID)
    • data5: winEventID2 (Unknown Event ID)
    • data6: contestedEventID1 (Unknown Event ID)
    • data7: contestedEventID2 (Unknown Event ID)
    • data8: progressEventID1 (Unknown Event ID)
    • data9: progressEventID2 (Unknown Event ID)
    • data10: neutralEventID1 (Unknown Event ID)
    • data11: neutralEventID2 (Unknown Event ID)
    • data12: neutralPercent
    • data13: worldstate3
    • data14: minSuperiority
    • data15: maxSuperiority
    • data16: minTime (in seconds)
    • data17: maxTime (in seconds)
    • data18: large? (Boolean flag)

  • GAMEOBJECT_TYPE_AURAGENERATOR = 30
    • data0: startOpen (Boolean flag)
    • data1: radius (Distance)
    • data2: auraID1 (Spell Id from spell.dbc)
    • data3: conditionID1 (Unknown ID)

  • GAMEOBJECT_TYPE_DUNGEONDIFFICULTY = 31
    • data0: mapID (From Maps.dbc)
    • data1: difficulty (0 or 1)

  • GAMEOBJECT_TYPE_UNK = 32

Object type not used

  • GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33

Object type not used

  • GAMEOBJECT_TYPE_GUILD_BANK = 34

No data data used, all are always 0

ScriptName

Название скрипта для данного объекта.


.GameObject

Поля GameObject

  • GAMEOBJECT_TYPE_DOOR = 0
    • sound0: startOpen
    • sound1: open
    • sound2: autoClose
    • sound3: noDamageImmune
    • sound4: openTextID
    • sound5: closeTextID

  • GAMEOBJECT_TYPE_BUTTON = 1
    • sound0: startOpen
    • sound1: open
    • sound2: autoClose
    • sound3: linkedTrap
    • sound4: noDamageImmune
    • sound5: large
    • sound6: openTextID
    • sound7: closeTextID
    • sound8: losOK

  • GAMEOBJECT_TYPE_QUESTGIVER = 2
    • sound0: open
    • sound1: questList
    • sound2: pageMaterial
    • sound3: gossipID
    • sound4: customAnim
    • sound5: noDamageImmune
    • sound6: openTextID
    • sound7: losOK
    • sound8: allowMounted
    • sound9: large

  • GAMEOBJECT_TYPE_CHEST = 3
    • sound0: open
    • sound1: chestLoot
    • sound2: chestRestockTime
    • sound3: consumable
    • sound4: minRestock
    • sound5: maxRestock
    • sound6: lootedEvent
    • sound7: linkedTrap
    • sound8: questID
    • sound9: level
    • sound10: losOK
    • sound11: leaveLoot
    • sound12: notInCombat
    • sound13: log loot
    • sound14: openTextID
    • sound15: use group loot rules

  • GAMEOBJECT_TYPE_BINDER = 4

  • GAMEOBJECT_TYPE_GENERIC = 5
    • sound0: floatingTooltip
    • sound1: highlight
    • sound2: serverOnly
    • sound3: large
    • sound4: floatOnWater
    • sound5: questID

  • GAMEOBJECT_TYPE_TRAP = 6
    • sound0: open
    • sound1: level
    • sound2: radius
    • sound3: spell
    • sound4: charges
    • sound5: cooldown
    • sound6: autoClose
    • sound7: startDelay
    • sound8: serverOnly
    • sound9: stealthed
    • sound10: large
    • sound11: stealthAffected
    • sound12: openTextID
    • sound13: closeTextID

  • GAMEOBJECT_TYPE_CHAIR = 7
    • sound0: chairslots
    • sound1: chairheight

  • GAMEOBJECT_TYPE_SPELLFOCUS = 8
    • sound0: spellFocusType
    • sound1: radius
    • sound2: linkedTrap
    • sound3: serverOnly

  • GAMEOBJECT_TYPE_TEXT = 9
    • sound0: pageID
    • sound1: language
    • sound2: pageMaterial
    • sound3: allowMounted

  • GAMEOBJECT_TYPE_GOOBER = 10
    • sound0: open
    • sound1: questID
    • sound2: eventID
    • sound3: autoClose
    • sound4: customAnim
    • sound5: consumable
    • sound6: cooldown
    • sound7: pageID
    • sound8: language
    • sound9: pageMaterial
    • sound10: spell
    • sound11: noDamageImmune
    • sound12: linkedTrap
    • sound13: large
    • sound14: openTextID
    • sound15: closeTextID
    • sound16: losOK
    • sound17: allowMounted

  • GAMEOBJECT_TYPE_TRANSPORT = 11

  • GAMEOBJECT_TYPE_AREADAMAGE = 12
    • sound0: open
    • sound1: radius
    • sound2: damageMin
    • sound3: damageMax
    • sound4: damageSchool
    • sound5: autoClose
    • sound6: openTextID
    • sound7: closeTextID

  • GAMEOBJECT_TYPE_CAMERA = 13
    • sound0: open
    • sound1: camera
    • sound2: eventID
    • sound3: openTextID

  • GAMEOBJECT_TYPE_MAPOBJECT = 14

  • GAMEOBJECT_TYPE_MOTRANSPORT = 15
    • sound0: taxiPathID
    • sound1: moveSpeed
    • sound2: accelRate
    • sound3: startEventID
    • sound4: stopEventID

  • GAMEOBJECT_TYPE_DUELFLAG = 16

  • GAMEOBJECT_TYPE_FISHINGNODE = 17

  • GAMEOBJECT_TYPE_RITUAL = 18
    • sound0: casters
    • sound1: spell
    • sound2: animSpell
    • sound3: ritualPersistent
    • sound4: casterTargetSpell
    • sound5: casterTargetSpellTargets
    • sound6: castersGrouped

  • GAMEOBJECT_TYPE_MAILBOX = 19

  • GAMEOBJECT_TYPE_AUCTIONHOUSE = 20
    • sound0: actionHouseID

  • GAMEOBJECT_TYPE_GUARDPOST = 21
    • sound0: creatureID
    • sound1: charges

  • GAMEOBJECT_TYPE_SPELLCASTER = 22
    • sound0: spell
    • sound1: charges
    • sound2: partyOnly

  • GAMEOBJECT_TYPE_MEETINGSTONE = 23
    • sound0: minLevel
    • sound1: maxLevel
    • sound2: areaID

  • GAMEOBJECT_TYPE_FLAGSTAND = 24
    • sound0: open
    • sound1: pickupSpell
    • sound2: radius
    • sound3: returnAura
    • sound4: returnSpell
    • sound5: noDamageImmune
    • sound6: openTextID
    • sound7: losOK

  • GAMEOBJECT_TYPE_FISHINGHOLE = 25
    • sound0: radius
    • sound1: chestLoot
    • sound2: minRestock
    • sound3: maxRestock
    • sound4: open

  • GAMEOBJECT_TYPE_FLAGDROP = 26
    • sound0: open
    • sound1: eventID
    • sound2: pickupSpell
    • sound3: noDamageImmune
    • sound4: openTextID

  • GAMEOBJECT_TYPE_MINIGAME = 27
    • sound0: gameType

  • GAMEOBJECT_TYPE_LOTTERYKIOSK = 28

  • GAMEOBJECT_TYPE_CAPTUREPOINT = 29
    • sound0: radius
    • sound1: spell
    • sound2: worldState1
    • sound3: worldstate2
    • sound4: winEventID1
    • sound5: winEventID2
    • sound6: contestedEventID1
    • sound7: contestedEventID2
    • sound8: progressEventID1
    • sound9: progressEventID2
    • sound10: neutralEventID1
    • sound11: neutralEventID2
    • sound12: neutralPercent
    • sound13: worldstate3
    • sound14: minSuperiority
    • sound15: maxSuperiority
    • sound16: minTime
    • sound17: maxTime
    • sound18: large
    • sound19: highlight

  • GAMEOBJECT_TYPE_AURAGENERATOR = 30
    • sound0: startOpen
    • sound1: radius
    • sound2: auraID1
    • sound3: conditionID1
    • sound4: auraID2
    • sound5: conditionID2

  • GAMEOBJECT_TYPE_DUNGEONDIFFICULTY = 31
    • sound0: mapID
    • sound1: difficulty


instance_template

Таблица `instance_template`

Содержит данные об инстансах.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
map | int(11) | unsigned | NO |  |
levelMin | int(11) | unsigned | NO | 0 |
levelMax | int(11) | unsigned | NO | 0 |
maxPlayers | int(11) | unsigned | NO | 0 |
reset_delay | int(20) | unsigned | NO | 0 |
startLocX | float |  | YES |  |
startLocY | float |  | YES |  |
startLocZ | float |  | YES |  |
startLocO | float |  | YES |  |

Описание полей таблицы

map

Номер карты инста.

levelMin

Минимальный уровень игрока для входа в инстанс.

levelMax

Максимальный уровень игрока для входа в инстанс.

maxPlayers

Максимально число игроков.

reset_delay

Время в секундах, через которое инстанс сбросится.

startLocX

Координата Х, стартовой точки инста.

startLocY

Координата Y, стартовой точки инста.

startLocZ

Координата Z, стартовой точки инста.

startLocO

Ориентация игрока в стартовой точке.


item_enchantment_template

Таблица `item_enchantment_template`

Таблица для описания шанса энчанта.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
ench | int(10) | unsigned | NO | 0 |
chance | float | unsigned | NO | 0 |

Описание полей таблицы

entry

Уникальный идентификатор. Используется в mangos.item_template.RandomProperty и mangos.item_template.RandomSuffix.

ench

Идентификатор энчанта из ItemRandomProperty.dbc или ItemRandomSuffix.dbc.

chance

Шанс энчанта.


item_loot_template

Таблица `item_loot_template`

Таблица лута предметов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 |
ChanceOrRef | float |  | NO | 100 |
QuestChanceOrGroup | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 1 |
maxcount | tinyint(3) | unsigned | NO | 1 |
quest_freeforall | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

entry

Идентификатор предмета, который имеет лут (См. mangos.item_template.entry).

item

Идентификатор предмета в луте (См. mangos.item_template.entry).

ChanceOrRef

Шанс выпадения итема в процентах (0..100).
Или ссылка на другой лут entry, если значение меньше нуля (-entry).

QuestChanceOrGroup

Квестовый шанс дропа в процентах (0..100).
Или группа дропа, если значение меньше нуля. Выпадает максимум один предмет из группы.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

quest_freeforall

Определяет, как будет лутиться квестовый предмет.

1 - предмет для каждого, кто с квестом
0 - только для одного, кто с квестом


item_template

Содержание

  • 1 Таблица `item_template`
  • 2 Описание полей таблицы
    • 2.1 entry
    • 2.2 class
    • 2.3 subclass
    • 2.4 unk0
    • 2.5 name
    • 2.6 displayid
    • 2.7 Quality
    • 2.8 Flags
    • 2.9 BuyCount
    • 2.10 BuyPrice
    • 2.11 SellPrice
    • 2.12 InventoryType
    • 2.13 AllowableClass
    • 2.14 AllowableRace
    • 2.15 ItemLevel
    • 2.16 RequiredLevel
    • 2.17 RequiredSkill
    • 2.18 RequiredSkillRank
    • 2.19 requiredspell
    • 2.20 requiredhonorrank
    • 2.21 RequiredCityRank
    • 2.22 RequiredReputationFaction
    • 2.23 RequiredReputationRank
    • 2.24 maxcount
    • 2.25 stackable
    • 2.26 ContainerSlots
    • 2.27 StatCount
    • 2.28 stat_type1.-10.
    • 2.29 stat_value1.-10.
    • 2.30 dmg_min1.-5.
    • 2.31 dmg_max1.-5.
    • 2.32 dmg_type1.-5.
    • 2.33 armor
    • 2.34 holy_res
    • 2.35 fire_res
    • 2.36 nature_res
    • 2.37 frost_res
    • 2.38 shadow_res
    • 2.39 arcane_res
    • 2.40 delay
    • 2.41 ammo_type
    • 2.42 RangedModRange
    • 2.43 spellid_1.-5.
    • 2.44 spelltrigger_1.-5.
    • 2.45 spellcharges_1.-5.
    • 2.46 spellppmRate_1.-5.
    • 2.47 spellcooldown_1.-5.
    • 2.48 spellcategory_1.-5.
    • 2.49 spellcategorycooldown_1.-5.
    • 2.50 bonding
    • 2.51 description
    • 2.52 PageText
    • 2.53 LanguageID
    • 2.54 PageMaterial
    • 2.55 startquest
    • 2.56 lockid
    • 2.57 Material
    • 2.58 sheath
    • 2.59 RandomProperty
    • 2.60 RandomSuffix
    • 2.61 block
    • 2.62 itemset
    • 2.63 MaxDurability
    • 2.64 area
    • 2.65 Map
    • 2.66 BagFamily
    • 2.67 TotemCategory
    • 2.68 socketColor_1.-3.
    • 2.69 socketContent_1.-3.
    • 2.70 socketBonus
    • 2.71 GemProperties
    • 2.72 RequiredDisenchantSkill
    • 2.73 ArmorDamageModifier
    • 2.74 ScriptName
    • 2.75 DisenchantID
    • 2.76 FoodType
    • 2.77 minMoneyLoot
    • 2.78 maxMoneyLoot
    • 2.79 Duration

Таблица `item_template`

Таблица содержит описания предметов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | mediumint(8) | unsigned | NO | 0 |
class | tinyint(3) | unsigned | NO | 0 |
subclass | tinyint(3) | unsigned | NO | 0 |
unk0 | int(10) |  | NO | -1 |
name | varchar(255) |  | NO |  |
displayid | mediumint(8) | unsigned | NO | 0 |
Quality | tinyint(3) | unsigned | NO | 0 |
Flags | int(10) | unsigned | NO | 0 |
BuyCount | tinyint(3) | unsigned | NO | 1 |
BuyPrice | int(10) | unsigned | NO | 0 |
SellPrice | int(10) | unsigned | NO | 0 |
InventoryType | tinyint(3) | unsigned | NO | 0 |
AllowableClass | mediumint(9) |  | NO | 0 |
AllowableRace | mediumint(9) |  | NO | 0 |
ItemLevel | tinyint(3) | unsigned | NO | 0 |
RequiredLevel | tinyint(3) | unsigned | NO | 0 |
RequiredSkill | smallint(5) | unsigned | NO | 0 |
RequiredSkillRank | smallint(5) | unsigned | NO | 0 |
requiredspell | mediumint(8) | unsigned | NO | 0 |
requiredhonorrank | mediumint(8) | unsigned | NO | 0 |
RequiredCityRank | mediumint(8) | unsigned | NO | 0 |
RequiredReputationFaction | smallint(5) | unsigned | NO | 0 |
RequiredReputationRank | smallint(5) | unsigned | NO | 0 |
maxcount | smallint(5) | unsigned | NO | 0 |
stackable | smallint(5) | unsigned | NO | 0 |
ContainerSlots | tinyint(3) | unsigned | NO | 0 |
StatCount | tinyint(3) | unsigned | NO | 0 |
stat_type1 | tinyint(3) | unsigned | NO | 0 |
stat_value1 | smallint(6) |  | NO | 0 |
stat_type2 | tinyint(3) | unsigned | NO | 0 |
stat_value2 | smallint(6) |  | NO | 0 |
stat_type3 | tinyint(3) | unsigned | NO | 0 |
stat_value3 | smallint(6) |  | NO | 0 |
stat_type4 | tinyint(3) | unsigned | NO | 0 |
stat_value4 | smallint(6) |  | NO | 0 |
stat_type5 | tinyint(3) | unsigned | NO | 0 |
stat_value5 | smallint(6) |  | NO | 0 |
stat_type6 | tinyint(3) | unsigned | NO | 0 |
stat_value6 | smallint(6) |  | NO | 0 |
stat_type7 | tinyint(3) | unsigned | NO | 0 |
stat_value7 | smallint(6) |  | NO | 0 |
stat_type8 | tinyint(3) | unsigned | NO | 0 |
stat_value8 | smallint(6) |  | NO | 0 |
stat_type9 | tinyint(3) | unsigned | NO | 0 |
stat_value9 | smallint(6) |  | NO | 0 |
stat_type10 | tinyint(3) | unsigned | NO | 0 |
stat_value10 | smallint(6) |  | NO | 0 |
dmg_min1 | float |  | NO | 0 |
dmg_max1 | float |  | NO | 0 |
dmg_type1 | tinyint(3) | unsigned | NO | 0 |
dmg_min2 | float |  | NO | 0 |
dmg_max2 | float |  | NO | 0 |
dmg_type2 | tinyint(3) | unsigned | NO | 0 |
dmg_min3 | float |  | NO | 0 |
dmg_max3 | float |  | NO | 0 |
dmg_type3 | tinyint(3) | unsigned | NO | 0 |
dmg_min4 | float |  | NO | 0 |
dmg_max4 | float |  | NO | 0 |
dmg_type4 | tinyint(3) | unsigned | NO | 0 |
dmg_min5 | float |  | NO | 0 |
dmg_max5 | float |  | NO | 0 |
dmg_type5 | tinyint(3) | unsigned | NO | 0 |
armor | smallint(5) | unsigned | NO | 0 |
holy_res | tinyint(3) | unsigned | NO | 0 |
fire_res | tinyint(3) | unsigned | NO | 0 |
nature_res | tinyint(3) | unsigned | NO | 0 |
frost_res | tinyint(3) | unsigned | NO | 0 |
shadow_res | tinyint(3) | unsigned | NO | 0 |
arcane_res | tinyint(3) | unsigned | NO | 0 |
delay | smallint(5) | unsigned | NO | 1000 |
ammo_type | tinyint(3) | unsigned | NO | 0 |
RangedModRange | float |  | NO | 0 |
spellid_1 | mediumint(8) | unsigned | NO | 0 |
spelltrigger_1 | tinyint(3) | unsigned | NO | 0 |
spellcharges_1 | tinyint(4) |  | NO | 0 |
spellppmRate_1 | float |  | NO | 0 |
spellcooldown_1 | int(11) |  | NO | -1 |
spellcategory_1 | smallint(5) | unsigned | NO | 0 |
spellcategorycooldown_1 | int(11) |  | NO | -1 |
spellid_2 | mediumint(8) | unsigned | NO | 0 |
spelltrigger_2 | tinyint(3) | unsigned | NO | 0 |
spellcharges_2 | tinyint(4) |  | NO | 0 |
spellppmRate_2 | float |  | NO | 0 |
spellcooldown_2 | int(11) |  | NO | -1 |
spellcategory_2 | smallint(5) | unsigned | NO | 0 |
spellcategorycooldown_2 | int(11) |  | NO | -1 |
spellid_3 | mediumint(8) | unsigned | NO | 0 |
spelltrigger_3 | tinyint(3) | unsigned | NO | 0 |
spellcharges_3 | tinyint(4) |  | NO | 0 |
spellppmRate_3 | float |  | NO | 0 |
spellcooldown_3 | int(11) |  | NO | -1 |
spellcategory_3 | smallint(5) | unsigned | NO | 0 |
spellcategorycooldown_3 | int(11) |  | NO | -1 |
spellid_4 | mediumint(8) | unsigned | NO | 0 |
spelltrigger_4 | tinyint(3) | unsigned | NO | 0 |
spellcharges_4 | tinyint(4) |  | NO | 0 |
spellppmRate_4 | float |  | NO | 0 |
spellcooldown_4 | int(11) |  | NO | -1 |
spellcategory_4 | smallint(5) | unsigned | NO | 0 |
spellcategorycooldown_4 | int(11) |  | NO | -1 |
spellid_5 | mediumint(8) | unsigned | NO | 0 |
spelltrigger_5 | tinyint(3) | unsigned | NO | 0 |
spellcharges_5 | tinyint(4) |  | NO | 0 |
spellppmRate_5 | float |  | NO | 0 |
spellcooldown_5 | int(11) |  | NO | -1 |
spellcategory_5 | smallint(5) | unsigned | NO | 0 |
spellcategorycooldown_5 | int(11) |  | NO | -1 |
bonding | tinyint(3) | unsigned | NO | 0 |
description | varchar(255) |  | NO |  |
PageText | mediumint(8) | unsigned | NO | 0 |
LanguageID | tinyint(3) | unsigned | NO | 0 |
PageMaterial | tinyint(3) | unsigned | NO | 0 |
startquest | mediumint(8) | unsigned | NO | 0 |
lockid | mediumint(8) | unsigned | NO | 0 |
Material | tinyint(4) |  | NO | 0 |
sheath | tinyint(3) | unsigned | NO | 0 |
RandomProperty | mediumint(8) | unsigned | NO | 0 |
RandomSuffix | mediumint(8) | unsigned | NO | 0 |
block | mediumint(8) | unsigned | NO | 0 |
itemset | mediumint(8)) | unsigned | NO | 0 |
MaxDurability | smallint(5) | unsigned | NO | 0 |
area | mediumint(8) | unsigned | NO | 0 |
Map | smallint(6) |  | NO | 0 |
BagFamily | mediumint(9) |  | NO | 0 |
TotemCategory | tinyint(4) |  | NO | 0 |
socketColor_1 | tinyint(4) |  | NO | 0 |
socketContent_1 | mediumint(9) |  | NO | 0 |
socketColor_2 | tinyint(4) |  | NO | 0 |
socketContent_2 | mediumint(9) |  | NO | 0 |
socketColor_3 | tinyint(4) |  | NO | 0 |
socketContent_3 | mediumint(9) |  | NO | 0 |
socketBonus | mediumint(9) |  | NO | 0 |
GemProperties | mediumint(9) |  | NO | 0 |
RequiredDisenchantSkill | smallint(6) |  | NO | -1 |
ArmorDamageModifier | float |  | NO | 0 |
ScriptName | varchar(64) |  | NO |  |
DisenchantID | mediumint(8) | unsigned | NO | 0 |
FoodType | tinyint(3) | unsigned | NO | 0 |
minMoneyLoot | int(10) | unsigned | NO | 0 |
maxMoneyLoot | int(10) | unsigned | NO | 0 |
Duration | int(11) |  | NO | 0 |

Описание полей таблицы

entry

Уникальный номер предмета.

class

Класс предмета. Трактование значений подкласса зависит от значения этого поля.

Класс | Значение (англ.) | Перевод
0 | Consumable | Предметы потребления
1 | Container | Контейнер
2 | Weapon | Оружие
3 | Gem | Драгоценные камни
4 | Armor | Броня
5 | Reagent | Реагент
6 | Projectile | Метательный (стрелы, патроны и метательные ножи-топоры)
7 | Trade Goods | Товары
8 | Generic(unused) | Стандартные(не используется, есть в ItemClass.dbc)
9 | Recipe | Рецепты
10 | Money | Деньги/Средства оплаты
11 | Quiver | Колчан
12 | Quest | Квест
13 | Key | Ключ
14 | Permanent(unused) | Постоянные(не используется, есть в ItemClass.dbc)
15 | Miscellaneous | Разное
16 | Glyphs | Символы

subclass

Подкласс предмета. Значения поля зависят от класса предмета.

Класс | Подкласс | Значение (англ.) | Перевод
0 |  | Consumable | Предметы потребления
0 | 0 | Consumable | Предметы потребления
0 | 1 | Potion | Микстура (можно использовать в бою)
0 | 2 | Elixir | Эликсиры
0 | 3 | Flask | Долгодействующие эликсиры(после смерти не пропадают)
0 | 4 | Scroll | Свиток (можно использовать в бою)
0 | 5 | Food | Еда
0 | 6 | Healthstone | Камень здоровья (можно использовать в бою)(в 2.3.0 это поле "Item Enhancement")
0 | 7 | Bandage | Бандаж (можно использовать в бою)
0 | 8 | Other | Другое
1 |  | Container | Контейнер
1 | 0 | Bag | Сумка
1 | 1 | Soul Bag | Сумка душ
1 | 2 | Herb Bag | Сумка травничества
1 | 3 | Enchanting Bag | Сумка энчантинга
1 | 4 | Engineering Bag | Сумка инженера
1 | 5 | Gem Bag | Сумка ювелира
1 | 6 | Mining Bag | Сумка шахтера
1 | 7 | Leatherworking Bag | Сумка кожевника
1 | 8 | Inscription Bag | Сумка начертателя
2 |  | Weapon | Оружие
2 | 0 | One-Handed Axe | Одноручный топор
2 | 1 | Two-Handed Axe | Двуручный топор
2 | 2 | Bow | Лук
2 | 3 | Gun | Ружьё
2 | 4 | One-Handed Mace | Одноручное дробящее оружие
2 | 5 | Two-Handed Mace | Двуручное дробящее оружие
2 | 6 | Polearms | Древковое оружие
2 | 7 | One-Handed Sword | Одноручный меч
2 | 8 | Two-Handed Sword | Двуручный меч
2 | 9 | Obsolete | Устаревший
2 | 10 | Staff | Посох
2 | 11 | One-Handed Exotic | Одноручное экзотическое оружие
2 | 12 | Two-Handed Exotic | Двуручное экзотическое оружие
2 | 13 | Fist Weapon | Кастеты
2 | 14 | Miscellaneous | Разное
2 | 15 | Dagger | Даггер
2 | 16 | Thrown | Метательное
2 | 17 | Spear | Копьё
2 | 18 | Crossbow | Арбалет
2 | 19 | Wand | Волшебная палочка
2 | 20 | Fishing Pole | Удочка
3 |  | Gem | Драгоценные камни
3 | 0 | Red | Красный
3 | 1 | Blue | Синий
3 | 2 | Yellow | Жёлтый
3 | 3 | Purple | Пурпурный
3 | 4 | Green | Зелёный
3 | 5 | Orange | Оранжевый
3 | 6 | Meta | Особые
3 | 7 | Simple | Простые
3 | 8 | Prismatic | Радужные
4 |  | Armor | Броня
4 | 0 | Miscellaneous | Разное
4 | 1 | Cloth | Ткань
4 | 2 | Leather | Кожа
4 | 3 | Mail | Кольчуга
4 | 4 | Plate | Латы
4 | 5 | Buckler | Малый щит
4 | 6 | Shield | Щит
4 | 7 | Libram | Книга(Для паладинов)/манускрипт
4 | 8 | Idol | Идол(Для друидов)
4 | 9 | Totem | Тотем(Для шаманов)
4 | 10 | ?????? | Печать
5 |  | Reagent | Реагент
5 | 0 | Reagent | Реагент
6 |  | Projectile | Метательный
6 | 0 | Wand | Жезл
6 | 1 | Bolt | Шар
6 | 2 | Arrow | Стрела
6 | 3 | Bullet | Пуля
6 | 4 | Thrown | Метательный нож
7 |  | Trade Goods | Хозяйственные Товары
7 | 0 | Trade Goods | Товары
7 | 1 | Parts | Части
7 | 2 | Explosives | Взрывчатка
7 | 3 | Devices | Устройства
7 | 4 | Jewelcrafting | Драгоценности
7 | 5 | Cloth | Тряпки
7 | 6 | Leather | Кожа
7 | 7 | Metal & Stone | Металы
7 | 8 | Meat | Мясо
7 | 9 | Herb | Трава
7 | 10 | Elemental | Стихии/элементы стихий
7 | 11 | Other | Другое
7 | 12 | Enchanting | Реагенты для зачарования (те которые не дизенчантятся из вещей!)
7 | 13 | ??????? | Материалы
7 | 14 | ??????? | Чары для доспехов
7 | 15 | ??????? | Чары для оружия
9 |  | Recipe | Рецепты
9 | 0 | Book | Книга
9 | 1 | Leatherworking | Кожевничество
9 | 2 | Tailoring | Шитье
9 | 3 | Engineering | Инженерное дело
9 | 4 | Blacksmithing | Кузнечное дело
9 | 5 | Cooking | Готовка
9 | 6 | Alchemy | Алхимия
9 | 7 | First Aid | Первая помощь
9 | 8 | Enchanting | Зачаровывание
9 | 9 | Fishing | Рыбалка
9 | 10 | Jewelcrafting | Ювелирное дело
11 |  | Quiver | Колчан
11 | 0 | unused | не используется(есть в dbc)
11 | 1 | unused | не используется(есть в dbc)
11 | 2 | Quiver | Колчан для стрел
11 | 3 | Ammo Pouch | Патронная сумка
12 |  | Quest | Квест
12 | 0 | Quest | Квест
13 |  | Key | Ключ
13 | 0 | Key | Ключ
13 | 1 | Lockpick | Отмычка ???
15 |  | Miscellaneous | Разное
15 | 0 | Junk | Хлам
15 | 1 | Reagent | Реагенты
15 | 2 | Small Pet | Питомцы
15 | 3 | Holiday | Праздничные
15 | 4 | Other | Другое
15 | 5 | Mounts | Транспорт
16 |  | Glyphs | Символы
16 | 1 | Warrior | Воин
16 | 2 | Paladin | Паладин
16 | 3 | Hunter | Охотник
16 | 4 | Rogue | Разбойник
16 | 5 | Priest | Жрец
16 | 6 | Death Knight | Рыцарь Смерти
16 | 7 | Shaman | Шаман
16 | 8 | Mage | Маг
16 | 9 | Warlock | Колдун
16 | 11 | Druid | Друид

unk0

!Нет описания!

name

Название предмета.

displayid

Идетификатор модели предмета.

Quality

Качество предмета:

0 | Poor {Grey} | Плохое
1 | Common {White} | Обычное
2 | Uncommon {Green} | Хорошее
3 | Rare {Blue} | Редкое
4 | Epic {Purple} | Эпическое
5 | Legendary {Orange} | Легендарное
6 | Artifact {Light yellow} | Артефакт

Flags

Флаги предмета:

1 | BINDED - передмет забинден
2 | CREATED - создаваемый предмет
4 | может быть открыт правым кликом
8 | неизвестно
16 | неизвестно
32 | Тотем
64 | с правым кликом что нибудь происходит с предметом
128 | неизвестно
256 | неизвестно
512 | Ribboned Wrapping Paper - подарочная бумага
1024 | Gifts - подарки
2048 | Quests and Keys - квестовые вещи и ключи
4096 | неизвестно
8192 | Charters
16384 | неизвестно
32768 | PvP Reward Item
524288 | Uniq Equiped(может быть одето только одно такое)
2097154 | Conjured Item
4194304 | неизвестно

BuyCount

Кол-во при покупке.

BuyPrice

Цена покупки итема GGGGSSCC.

SellPrice

Цена продажи итема GGGGSSCC.

InventoryType

Тип инвентаря предмета

0 | Non Equip | Не одеваемое
1 | Head | Шлем
2 | Neck | Ожерелье
3 | Shoulder | Наплечники
4 | Shirt | Рубашка
5 | Chest | Броня
6 | Waist (Belt) | Пояс
7 | Legs (Pants) | Штаны
8 | Feet (Boots) | Обувь
9 | Wrists (Bracers) | На запястье
10 | Hands (Gloves) | Перчатки
11 | Finger (Ring) | Кольцо
12 | Trinket | Серьга
13 | One Hand | Одна рука
14 | Off Hand (includes Shield) | Щит
15 | Ranged (Bows) | Лук
16 | Cloak (Back) | Плащ
17 | Two Hand | Две руки
18 | Bag | Сумка
19 | Tabard | Гильдийская накидка
20 | Robe | Роба
21 | Main Hand | Правая рука
22 | Off Hand (Misc Items) | Левая рука
23 | Holdable (Tome) | Holdable
24 | Ammunition | Аммуниция
25 | Thrown | Бросаемое
26 | Ranged Right (Gun) | Пушка
27 | Quiver | Колчаны
28 | Relic | Реликвия

AllowableClass

Маска класса которые могут использовать итем:

1 | 2 | 4 | 8 | 16 | 64 | 128 | 256 | 1024
Warrior | Paladin | Hunter | Rogue | Priest | Shaman | Mage | Warlock | Druid

AllowableRace

Маска расы которые могут использовать итем:

1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 512 | 1024
Human | Orc | Dwarf | NightElf | Undead | Tauren | Gnome | Troll | Blood Elves | Draenei

ItemLevel

Уровень предмета.

RequiredLevel

Минимальный уровень персонажа который может использовать итем.

RequiredSkill

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

RequiredSkillRank

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

requiredspell

Спэлл требуемый для использования итема.

requiredhonorrank

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

RequiredCityRank

!Нет описания!

RequiredReputationFaction

Фракция, требующая репутации RequiredReputationRank, для использования предмета.

RequiredReputationRank

Ранг требуемой репутации.

maxcount

Максимальное кол-во этого предмета, кторое может находится у персонажа.

stackable

Число, определяющее количество предметов, помещающихся в один слот.

ContainerSlots

Количество слотов.

StatCount

Количество статов предмета (должно равняться числу заполненных stat_type, иначе не будут отображаться статы на вещи)

stat_type1.-10.

Бонус, который добавляет итем персонажу при его использовании:

 0 - Mana
 1 - Health
 3 - Agility
 4 - Strength
 5 - Intellect
 6 - Spirit
 7 - Stamina
12 - Defense Rating
13 - Dodge Rating
14 - Parry Rating
15 - Shield Block Rating
16 - Melee Hit Rating
17 - Ranged Hit Rating
18 - Spell Hit Rating
19 - Melee Critical Strike Rating
20 - Ranged Critical Strike Rating
21 - Spell Critical Strike Rating
22 - Melee Hit Avoidance Rating
23 - Ranged Hit Avoidance Rating
24 - Spell Hit Avoidance Rating
25 - Melee Critical Avoidance Rating
26 - Ranged Critical Avoidance Rating
27 - Spell Critical Avoidance Rating
28 - Melee Haste Rating
29 - Ranged Haste Rating
30 - Spell Haste Rating
31 - Hit Rating
32 - Critical Strike Rating
33 - Hit Avoidance Rating
34 - Critical Avoidance Rating
35 - Resilience Rating
36 - Haste Rating
37 - EXPERTISE RATING

stat_value1.-10.

Кол-во добовлемого бонуса.

dmg_min1.-5.

Минимальный наносимый урон.

dmg_max1.-5.

Максимальный наносимый урон.

dmg_type1.-5.

Тип наносимого урона:

0 | Physical | Физический
1 | Holy | Святой
2 | Fire | Огненый
3 | Nature | Природный
4 | Frost | Ледяной
5 | Shadow | Теневой
6 | Arcane | Тайный

armor

Броня добовляемая итемом при использовании.

holy_res

Holy стойкость добовляемая итемом при использовании.

fire_res

Fire стойкость добовляемая итемом при использовании.

nature_res

Nature стойкость добовляемая итемом при использовании.

frost_res

Frost стойкость добовляемая итемом при использовании.

shadow_res

Shadow стойкость добовляемая итемом при использовании.

arcane_res

Arcane стойкость добовляемая итемом при использовании.

delay

Скорость, время за которое происходит удар в миллисекундах.

ammo_type

!Нет описания!

RangedModRange

!Нет описания!

spellid_1.-5.

Номер спэла, который может быть скастован этим предметом номер (См. ID из Spell.dbc)

spelltrigger_1.-5.

!Нет описания!

spellcharges_1.-5.

Кол-во зарядов (x=кол-во зарядов):

0 - бесконечные
x>0 - исчезает после использования
x<0 - остается после использования

spellppmRate_1.-5.

Кол-во проков спелла на итеме в минуту, для ChanceOnHit.

ppm = proc per minute - сколько раз разрешается _в_среднем_ сработать эффекту для вещи при ударах за одну минуту вне зависимости от скорости оружия

spellcooldown_1.-5.

Время перезарядки спэла вещи в миллисекундах до использования следующего заряда (еще раз).

spellcategory_1.-5.

!Нет описания!

spellcategorycooldown_1.-5.

!Нет описания!

bonding

Определяет, каким образом вещь становится именной.

0 | No Bind | Не именная
1 | Binds when Picked Up | Eсли взять cтанет именным
2 | Binds when Equipped | Eсли одеть cтанет именным
3 | Binds when Used | Eсли использовать станет именным
4 | Quest Item | Квестовая вещь
5 | Quest Item1 | Квестовая вещь1

description

Описание предмета. Отображается желто-оранжевым цветом внизу всплывающей подсказки предмета.

PageText

Идентификатор страницы текста (См. mangos.page_text.entry).

LanguageID

Язык, на котором написан текст предмета (для книги, рецепта, и т. п.).

PageMaterial

Материал страниц

1 | Parchment | Пергамент
2 | Stone | Камень
3 | Marble | Мрамор
4 | Silver | Серебро
5 | Bronze | Бронза
6 | Valentine | Валентинка

startquest

ID квеста которое начинает предмет при использовании.

lockid

Значение поля определяет, заперт ли предмет.
Требования для открытия определяются по ID из Lock.dbc

Material

Материал предмета:

1 | Metal | Металл
2 | Wood | Дерево
3 | Liquid | Жидкость
4 | Jewelry | Драгоценнсть
5 | Chain | кольчуга
6 | Plate | Листы металла
7 | Cloth | Ткань
8 | Leather | Кожа

sheath

Устанавливает положение на персонаже, в котором будет отображаться модель предмета

0 | NONE | Отсутствует
1 | MAINHAND | В основной руке
2 | OFFHAND | В другой руке
3 | LARGEWEAPONLEFT | Большое оружие слева
4 | LARGEWEAPONRIGHT | Большое оружие справа
5 | HIPWEAPONLEFT | Оружие на левом боку
6 | HIPWEAPONRIGHT | Оружие на правом боку
7 | SHIELD | Как щит, сзади

RandomProperty

Идентификатор для случайного энчанта (Cм. mangos.item_enchantment.entry).

RandomSuffix

Идентификатор для случайного энчанта (Cм. mangos.item_enchantment.entry).
Используется, если RandomProperty = 0, иначе игнорируется.

block

Шанс блокировать атаку (для щитов).

itemset

ID cета к которому принадлежит итем.

MaxDurability

Максимальная прочность предмета.

area

!Нет описания!

Map

Отвечает за то, где предмет можно носить.

550 - предмет можно носить только в Темпест Кип
530 - предмет можно носить только в Ауте
0 - предмет можно носить ВЕЗДЕ

BagFamily

Семейство сумки (В какие сумки можно положить данный предмет)

0 | NONE | Любые
1 | ARROWS | Стрелы
2 | BULLETS | Пули
3 | SOUL_SHARDS | Куски душ
6 | HERBS | Травы
7 | ENCHANTING_SUPP | Энчант
8 | ENGINEERING_SUPP | Инженерия
9 | KEYS | Ключи
10 | GEMS | Драгоценности
11 | MINING_SUPP | Руда

TotemCategory

Предмет необходим к той или иной профессии или тотем шамана.

socketColor_1.-3.

1 - Meta Socket
2 - Red Socket
4 - Yellow Socket
8 - Blue Socket

socketContent_1.-3.

!Нет описания!

socketBonus

Числовое значение сокет-бонуса, обозначающее какой бонус дает сокет.
Список сокет-бонусов:

 69  -  +2 Strength
 70  -  +3 Strength
 106  - +4 Strength
 75  -  +2 Agility
 76  -  +3 Agility
 90  -  +4 Agility
 2925 - +3 Stamina
 2883 - +4 Stamina
 2882 - +6 Stamina
 3016 - +2 Intelligence
 2863 - +3 Intelligence
 2869 - +4 Intelligence
 2866 - +3 Spirit
 2890 - +4 Spirit
 2974 - +7 Healing
 2872 - +9 Healing
 2881 - +1 Mana per 5 sec
 2865 - +2 Mana per 5 sec
 424 -  +2 Healing/Spell Dmg
 2910 - +3 Healing/Spell Dmg
 2900 - +4 Healing/Spell Dmg
 426 -  +5 Healing/Spell Dmg
 1583 - +4 Attack Power
 1584 - +6 Attack Power
 1585 - +8 Attack Power
 2867 - +2 Resillience
 2862 - +3 Resillience
 2878 - +4 Resillience
 2886 - +2 Hit Rating
 2860 - +3 Hit Rating
 2873 - +4 Hit Rating
 2909 - +2 Spell Hit Rating
 2880 - +3 Spell Hit Rating
 2908 - +4 Spell Hit Rating
 2885 - +2 Crit Rating
 2887 - +3 Crit Rating
 2874 - +4 Crit Rating
 2884 - +2 Spell Crit Rating
 2875 - +3 Spell Crit Rating
 2864 - +4 Spell Crit Rating
 2907 - +2 Parry
 2870 - +3 Parry
 2926 - +2 Dodge
 2876 - +3 Dodge
 2871 - +4 Dodge
 2976 - +2 Defense Rating
 2861 - +3 Defense Rating
 2932 - +4 Defense Rating
 3017 - +3 Block
 2972 - +4 Block
 2888 - +6 Block

GemProperties

Статистика gem камня

RequiredDisenchantSkill

Требование скилла Disenchant.

ArmorDamageModifier

Насколько больше брони у этой вещи по сравнению с вещями такого же лвла.

ScriptName

Название скрипта.

DisenchantID

Идентификатор дизэнчанта (См. mangos.disenchant_loot_template.entry).

FoodType

!Нет описания!

minMoneyLoot

Минимальное кол-во подобраных денег.

maxMoneyLoot

Максимальное кол-во подобраных денег.

Duration

!Нет описания!


locales_creature

Таблица `locales_creature`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
name_loc1 | varchar(100) |  | NO |  |
name_loc2 | varchar(100) |  | NO |  |
name_loc3 | varchar(100) |  | NO |  |
name_loc4 | varchar(100) |  | NO |  |
name_loc5 | varchar(100) |  | NO |  |
name_loc6 | varchar(100) |  | NO |  |
name_loc7 | varchar(100) |  | NO |  |
subname_loc1 | varchar(100) |  | YES |  |
subname_loc2 | varchar(100) |  | YES |  |
subname_loc3 | varchar(100) |  | YES |  |
subname_loc4 | varchar(100) |  | YES |  |
subname_loc5 | varchar(100) |  | YES |  |
subname_loc6 | varchar(100) |  | YES |  |
subname_loc7 | varchar(100) |  | YES |  |

Описание полей таблицы

entry

!Нет описания!

name_loc1.-7.

!Нет описания!

subname_loc1.-7.

!Нет описания!


locales_gameobject

Таблица `locales_gameobject`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
name_loc1 | varchar(100) |  | NO |  |
name_loc2 | varchar(100) |  | NO |  |
name_loc3 | varchar(100) |  | NO |  |
name_loc4 | varchar(100) |  | NO |  |
name_loc5 | varchar(100) |  | NO |  |
name_loc6 | varchar(100) |  | NO |  |
name_loc7 | varchar(100) |  | NO |  |

Описание полей таблицы

entry

!Нет описания!

name_loc1.-7.

!Нет описания!


locales_item

Таблица `locales_item`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
name_loc1 | varchar(100) |  | NO |  |
name_loc2 | varchar(100) |  | NO |  |
name_loc3 | varchar(100) |  | NO |  |
name_loc4 | varchar(100) |  | NO |  |
name_loc5 | varchar(100) |  | NO |  |
name_loc6 | varchar(100) |  | NO |  |
name_loc7 | varchar(100) |  | NO |  |
description_loc1 | varchar(255) |  | YES |  |
description_loc2 | varchar(255) |  | YES |  |
description_loc3 | varchar(255) |  | YES |  |
description_loc4 | varchar(255) |  | YES |  |
description_loc5 | varchar(255) |  | YES |  |
description_loc6 | varchar(255) |  | YES |  |
description_loc7 | varchar(255) |  | YES |  |

Описание полей таблицы

entry

!Нет описания!

name_loc1.-7.

!Нет описания!

description_loc1.-7.

!Нет описания!


locales_npc_text

Таблица `locales_npc_text`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
Text0_0_loc1 | longtext |  | YES |  |
Text0_0_loc2 | longtext |  | YES |  |
Text0_0_loc3 | longtext |  | YES |  |
Text0_0_loc4 | longtext |  | YES |  |
Text0_0_loc5 | longtext |  | YES |  |
Text0_0_loc6 | longtext |  | YES |  |
Text0_0_loc7 | longtext |  | YES |  |
Text0_1_loc1 | longtext |  | YES |  |
Text0_1_loc2 | longtext |  | YES |  |
Text0_1_loc3 | longtext |  | YES |  |
Text0_1_loc4 | longtext |  | YES |  |
Text0_1_loc5 | longtext |  | YES |  |
Text0_1_loc6 | longtext |  | YES |  |
Text0_1_loc7 | longtext |  | YES |  |
Text1_0_loc1 | longtext |  | YES |  |
Text1_0_loc2 | longtext |  | YES |  |
Text1_0_loc3 | longtext |  | YES |  |
Text1_0_loc4 | longtext |  | YES |  |
Text1_0_loc5 | longtext |  | YES |  |
Text1_0_loc6 | longtext |  | YES |  |
Text1_0_loc7 | longtext |  | YES |  |
Text1_1_loc1 | longtext |  | YES |  |
Text1_1_loc2 | longtext |  | YES |  |
Text1_1_loc3 | longtext |  | YES |  |
Text1_1_loc4 | longtext |  | YES |  |
Text1_1_loc5 | longtext |  | YES |  |
Text1_1_loc6 | longtext |  | YES |  |
Text1_1_loc7 | longtext |  | YES |  |
Text2_0_loc1 | longtext |  | YES |  |
Text2_0_loc2 | longtext |  | YES |  |
Text2_0_loc3 | longtext |  | YES |  |
Text2_0_loc4 | longtext |  | YES |  |
Text2_0_loc5 | longtext |  | YES |  |
Text2_0_loc6 | longtext |  | YES |  |
Text2_0_loc7 | longtext |  | YES |  |
Text2_1_loc1 | longtext |  | YES |  |
Text2_1_loc2 | longtext |  | YES |  |
Text2_1_loc3 | longtext |  | YES |  |
Text2_1_loc4 | longtext |  | YES |  |
Text2_1_loc5 | longtext |  | YES |  |
Text2_1_loc6 | longtext |  | YES |  |
Text2_1_loc7 | longtext |  | YES |  |
Text3_0_loc1 | longtext |  | YES |  |
Text3_0_loc2 | longtext |  | YES |  |
Text3_0_loc3 | longtext |  | YES |  |
Text3_0_loc4 | longtext |  | YES |  |
Text3_0_loc5 | longtext |  | YES |  |
Text3_0_loc6 | longtext |  | YES |  |
Text3_0_loc7 | longtext |  | YES |  |
Text3_1_loc1 | longtext |  | YES |  |
Text3_1_loc2 | longtext |  | YES |  |
Text3_1_loc3 | longtext |  | YES |  |
Text3_1_loc4 | longtext |  | YES |  |
Text3_1_loc5 | longtext |  | YES |  |
Text3_1_loc6 | longtext |  | YES |  |
Text3_1_loc7 | longtext |  | YES |  |
Text4_0_loc1 | longtext |  | YES |  |
Text4_0_loc2 | longtext |  | YES |  |
Text4_0_loc3 | longtext |  | YES |  |
Text4_0_loc4 | longtext |  | YES |  |
Text4_0_loc5 | longtext |  | YES |  |
Text4_0_loc6 | longtext |  | YES |  |
Text4_0_loc7 | longtext |  | YES |  |
Text4_1_loc1 | longtext |  | YES |  |
Text4_1_loc2 | longtext |  | YES |  |
Text4_1_loc3 | longtext |  | YES |  |
Text4_1_loc4 | longtext |  | YES |  |
Text4_1_loc5 | longtext |  | YES |  |
Text4_1_loc6 | longtext |  | YES |  |
Text4_1_loc7 | longtext |  | YES |  |
Text5_0_loc1 | longtext |  | YES |  |
Text5_0_loc2 | longtext |  | YES |  |
Text5_0_loc3 | longtext |  | YES |  |
Text5_0_loc4 | longtext |  | YES |  |
Text5_0_loc5 | longtext |  | YES |  |
Text5_0_loc6 | longtext |  | YES |  |
Text5_0_loc7 | longtext |  | YES |  |
Text5_1_loc1 | longtext |  | YES |  |
Text5_1_loc2 | longtext |  | YES |  |
Text5_1_loc3 | longtext |  | YES |  |
Text5_1_loc4 | longtext |  | YES |  |
Text5_1_loc5 | longtext |  | YES |  |
Text5_1_loc6 | longtext |  | YES |  |
Text5_1_loc7 | longtext |  | YES |  |
Text6_0_loc1 | longtext |  | YES |  |
Text6_0_loc2 | longtext |  | YES |  |
Text6_0_loc3 | longtext |  | YES |  |
Text6_0_loc4 | longtext |  | YES |  |
Text6_0_loc5 | longtext |  | YES |  |
Text6_0_loc6 | longtext |  | YES |  |
Text6_0_loc7 | longtext |  | YES |  |
Text6_1_loc1 | longtext |  | YES |  |
Text6_1_loc2 | longtext |  | YES |  |
Text6_1_loc3 | longtext |  | YES |  |
Text6_1_loc4 | longtext |  | YES |  |
Text6_1_loc5 | longtext |  | YES |  |
Text6_1_loc6 | longtext |  | YES |  |
Text6_1_loc7 | longtext |  | YES |  |
Text7_0_loc1 | longtext |  | YES |  |
Text7_0_loc2 | longtext |  | YES |  |
Text7_0_loc3 | longtext |  | YES |  |
Text7_0_loc4 | longtext |  | YES |  |
Text7_0_loc5 | longtext |  | YES |  |
Text7_0_loc6 | longtext |  | YES |  |
Text7_0_loc7 | longtext |  | YES |  |
Text7_1_loc1 | longtext |  | YES |  |
Text7_1_loc2 | longtext |  | YES |  |
Text7_1_loc3 | longtext |  | YES |  |
Text7_1_loc4 | longtext |  | YES |  |
Text7_1_loc5 | longtext |  | YES |  |
Text7_1_loc6 | longtext |  | YES |  |
Text7_1_loc7 | longtext |  | YES |  |

Описание полей таблицы

entry

!Нет описания!

TextA_B_locC

!Нет описания!


locales_page_text

Таблица `locales_page_text`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
Text_loc1 | longtext |  | YES |  |
Text_loc2 | longtext |  | YES |  |
Text_loc3 | longtext |  | YES |  |
Text_loc4 | longtext |  | YES |  |
Text_loc5 | longtext |  | YES |  |
Text_loc6 | longtext |  | YES |  |
Text_loc7 | longtext |  | YES |  |
Text_loc8 | longtext |  | YES |  |

Описание полей таблицы

entry

Идентификатор страницы текста (См. mangos.page_text.entry)

Text_loc1.-8.

Локализированый вариант текста (См. mangos.page_text.text)


locales_quest

Таблица `locales_quest`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
Title_loc1 | text |  | YES |  |
Title_loc2 | text |  | YES |  |
Title_loc3 | text |  | YES |  |
Title_loc4 | text |  | YES |  |
Title_loc5 | text |  | YES |  |
Title_loc6 | text |  | YES |  |
Title_loc7 | text |  | YES |  |
Details_loc1 | text |  | YES |  |
Details_loc2 | text |  | YES |  |
Details_loc3 | text |  | YES |  |
Details_loc4 | text |  | YES |  |
Details_loc5 | text |  | YES |  |
Details_loc6 | text |  | YES |  |
Details_loc7 | text |  | YES |  |
Objectives_loc1 | text |  | YES |  |
Objectives_loc2 | text |  | YES |  |
Objectives_loc3 | text |  | YES |  |
Objectives_loc4 | text |  | YES |  |
Objectives_loc5 | text |  | YES |  |
Objectives_loc6 | text |  | YES |  |
Objectives_loc7 | text |  | YES |  |
OfferRewardText_loc1 | text |  | YES |  |
OfferRewardText_loc2 | text |  | YES |  |
OfferRewardText_loc3 | text |  | YES |  |
OfferRewardText_loc4 | text |  | YES |  |
OfferRewardText_loc5 | text |  | YES |  |
OfferRewardText_loc6 | text |  | YES |  |
OfferRewardText_loc7 | text |  | YES |  |
RequestItemsText_loc1 | text |  | YES |  |
RequestItemsText_loc2 | text |  | YES |  |
RequestItemsText_loc3 | text |  | YES |  |
RequestItemsText_loc4 | text |  | YES |  |
RequestItemsText_loc5 | text |  | YES |  |
RequestItemsText_loc6 | text |  | YES |  |
RequestItemsText_loc7 | text |  | YES |  |
EndText_loc1 | text |  | YES |  |
EndText_loc2 | text |  | YES |  |
EndText_loc3 | text |  | YES |  |
EndText_loc4 | text |  | YES |  |
EndText_loc5 | text |  | YES |  |
EndText_loc6 | text |  | YES |  |
EndText_loc7 | text |  | YES |  |
ObjectiveText1_loc1 | text |  | YES |  |
ObjectiveText1_loc2 | text |  | YES |  |
ObjectiveText1_loc3 | text |  | YES |  |
ObjectiveText1_loc4 | text |  | YES |  |
ObjectiveText1_loc5 | text |  | YES |  |
ObjectiveText1_loc6 | text |  | YES |  |
ObjectiveText1_loc7 | text |  | YES |  |
ObjectiveText2_loc1 | text |  | YES |  |
ObjectiveText2_loc2 | text |  | YES |  |
ObjectiveText2_loc3 | text |  | YES |  |
ObjectiveText2_loc4 | text |  | YES |  |
ObjectiveText2_loc5 | text |  | YES |  |
ObjectiveText2_loc6 | text |  | YES |  |
ObjectiveText2_loc7 | text |  | YES |  |
ObjectiveText3_loc1 | text |  | YES |  |
ObjectiveText3_loc2 | text |  | YES |  |
ObjectiveText3_loc3 | text |  | YES |  |
ObjectiveText3_loc4 | text |  | YES |  |
ObjectiveText3_loc5 | text |  | YES |  |
ObjectiveText3_loc6 | text |  | YES |  |
ObjectiveText3_loc7 | text |  | YES |  |
ObjectiveText4_loc1 | text |  | YES |  |
ObjectiveText4_loc2 | text |  | YES |  |
ObjectiveText4_loc3 | text |  | YES |  |
ObjectiveText4_loc4 | text |  | YES |  |
ObjectiveText4_loc5 | text |  | YES |  |
ObjectiveText4_loc6 | text |  | YES |  |
ObjectiveText4_loc7 | text |  | YES |  |

Описание полей таблицы

entry

Уникальный индентификатор для каждого квеста.

Title_loc*

Переведенный текст заголовка (где * локаль из кофига).

Details_loc*

Переведенный текст деталей квеста (где * локаль из кофига).

Objectives_loc*

Переведенный текст задания квеста (где * локаль из кофига).

OfferRewardText_loc*

Переведенный текст наград квеста (где * локаль из кофига).

EndText_loc*

Переведенный текст окончания квеста (где * локаль из кофига).

ObjectiveText1-4_loc*

Переведенный текст задания квеста 1-4 (где * локаль из кофига).


mangos_string

Таблица `MaNGOS string`

Cодержит все сообщения, посылаемые сервером игрокам. Основная цель таблицы - перевод этих сообщений.

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
entry | int(11) | unsigned | NO | PRI | 0 |
content_default | text |  | YES |  |  |
content_loc1 | text |  | YES |  |  |
content_loc2 | text |  | YES |  |  |
content_loc3 | text |  | YES |  |  |
content_loc4 | text |  | YES |  |  |
content_loc5 | text |  | YES |  |  |
content_loc6 | text |  | YES |  |  |
content_loc7 | text |  | YES |  |  |

Описание полей таблицы

entry

Уникальный номер. Записи используются ядром. Ядро не будет работать, если не все идентификаторы присутствуют в таблице.

content_default

Английский перевод (locale ID 0).

content_loc1-7

Переводы на другие яыки. В loc*: * - localeID:

Номер | Язык
0 | English
1 | Korean
2 | French
3 | German
4 | Chinese
5 | Taiwanese
6 | Spanish
7 | Russian
  • 8-15 содержатся в dbc, но не используются ядром или базой.


npc_gossip

Таблица `npc_gossip`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) |  | NO | 0 |
npc_guid | int(11) |  | NO | 0 |
gossip_type | int(11) |  | NO | 0 |
textid | int(30) |  | NO | 0 |
option_count | int(30) |  | YES |  |

Описание полей таблицы

npc_guid

Идентификатор NPC (См. mangos.creature.guid).

textid

Это ID из mangos.npc_text.id (содержит текст для NPC).

Теперь, для показа текста, вы должны обновить creature_template.npcflag, поставив npcflag=1 (UNIT_NPC_FLAG_GOSSIP).


npc_gossip_textid

Таблица `npc_gossip_textid`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
zoneid | int(11) | unsigned | NO | 0 |
action | int(3) | unsigned | NO | 0 |
textid | int(11) | unsigned | NO | 0 |

Описание полей таблицы

zoneid

!Нет описания!

action

!Нет описания!

textid

!Нет описания!


npc_option

Таблица `npc_option`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
gossip_id | int(11) | unsigned | NO | 0 |
npcflag | int(11) | unsigned | NO | 0 |
icon | int(11) | unsigned | NO | 0 |
action | int(11) | unsigned | NO | 0 |
option | text |  | YES |  |

Описание полей таблицы

id

Идентификатор NPC (См. mangos.creature_template.entry).

gossip_id

Идентификатор диалога

npcflag

Указывает тип NPC (См. mangos.сreature_template.npcflag)

icon

!Нет описания!

action

!Нет описания!

option

!Нет описания!


npc_text

Таблица `npc_text`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
ID | int(11) |  | NO | 0 |
text0_0 | longtext |  | YES |  |
text0_1 | longtext |  | YES |  |
lang0 | bigint(20) | unsigned | NO | 0 |
prob0 | float |  | NO | 0 |
em0_0 | bigint(20) | unsigned | NO | 0 |
em0_1 | bigint(20) | unsigned | NO | 0 |
em0_2 | bigint(20) | unsigned | NO | 0 |
em0_3 | bigint(20) | unsigned | NO | 0 |
em0_4 | bigint(20) | unsigned | NO | 0 |
em0_5 | bigint(20) | unsigned | NO | 0 |
text1_0 | longtext |  | YES |  |
text1_1 | longtext |  | YES |  |
lang1 | bigint(20) | unsigned | NO | 0 |
prob1 | float |  | NO | 0 |
em1_0 | bigint(20) | unsigned | NO | 0 |
em1_1 | bigint(20) | unsigned | NO | 0 |
em1_2 | bigint(20) | unsigned | NO | 0 |
em1_3 | bigint(20) | unsigned | NO | 0 |
em1_4 | bigint(20) | unsigned | NO | 0 |
em1_5 | bigint(20) | unsigned | NO | 0 |
text2_0 | longtext |  | YES |  |
text2_1 | longtext |  | YES |  |
lang2 | bigint(20) | unsigned | NO | 0 |
prob2 | float |  | NO | 0 |
em2_0 | bigint(20) | unsigned | NO | 0 |
em2_1 | bigint(20) | unsigned | NO | 0 |
em2_2 | bigint(20) | unsigned | NO | 0 |
em2_3 | bigint(20) | unsigned | NO | 0 |
em2_4 | bigint(20) | unsigned | NO | 0 |
em2_5 | bigint(20) | unsigned | NO | 0 |
text3_0 | longtext |  | YES |  |
text3_1 | longtext |  | YES |  |
lang3 | bigint(20) | unsigned | NO | 0 |
prob3 | float |  | NO | 0 |
em3_0 | bigint(20) | unsigned | NO | 0 |
em3_1 | bigint(20) | unsigned | NO | 0 |
em3_2 | bigint(20) | unsigned | NO | 0 |
em3_3 | bigint(20) | unsigned | NO | 0 |
em3_4 | bigint(20) | unsigned | NO | 0 |
em3_5 | bigint(20) | unsigned | NO | 0 |
text4_0 | longtext |  | YES |  |
text4_1 | longtext |  | YES |  |
lang4 | bigint(20) | unsigned | NO | 0 |
prob4 | float |  | NO | 0 |
em4_0 | bigint(20) | unsigned | NO | 0 |
em4_1 | bigint(20) | unsigned | NO | 0 |
em4_2 | bigint(20) | unsigned | NO | 0 |
em4_3 | bigint(20) | unsigned | NO | 0 |
em4_4 | bigint(20) | unsigned | NO | 0 |
em4_5 | bigint(20) | unsigned | NO | 0 |
text5_0 | longtext |  | YES |  |
text5_1 | longtext |  | YES |  |
lang5 | bigint(20) | unsigned | NO | 0 |
prob5 | float |  | NO | 0 |
em5_0 | bigint(20) | unsigned | NO | 0 |
em5_1 | bigint(20) | unsigned | NO | 0 |
em5_2 | bigint(20) | unsigned | NO | 0 |
em5_3 | bigint(20) | unsigned | NO | 0 |
em5_4 | bigint(20) | unsigned | NO | 0 |
em5_5 | bigint(20) | unsigned | NO | 0 |
text6_0 | longtext |  | YES |  |
text6_1 | longtext |  | YES |  |
lang6 | bigint(20) | unsigned | NO | 0 |
prob6 | float |  | NO | 0 |
em6_0 | bigint(20) | unsigned | NO | 0 |
em6_1 | bigint(20) | unsigned | NO | 0 |
em6_2 | bigint(20) | unsigned | NO | 0 |
em6_3 | bigint(20) | unsigned | NO | 0 |
em6_4 | bigint(20) | unsigned | NO | 0 |
em6_5 | bigint(20) | unsigned | NO | 0 |
text7_0 | longtext |  | YES |  |
text7_1 | longtext |  | YES |  |
lang7 | bigint(20) | unsigned | NO | 0 |
prob7 | float |  | NO | 0 |
em7_0 | bigint(20) | unsigned | NO | 0 |
em7_1 | bigint(20) | unsigned | NO | 0 |
em7_2 | bigint(20) | unsigned | NO | 0 |
em7_3 | bigint(20) | unsigned | NO | 0 |
em7_4 | bigint(20) | unsigned | NO | 0 |
em7_5 | bigint(20) | unsigned | NO | 0 |

Описание полей таблицы

ID

Идентификатор NPC (См. mangos.creature_template.entry).

text0_0 - text7_0

!Нет описания!

text0_1 - text7_1

!Нет описания!

lang0.-7.

!Нет описания!

prob0.-7.

!Нет описания!

em0_0 - em7_0

!Нет описания!

em0_1 - em7_1

!Нет описания!

em0_2 - em7_2

!Нет описания!

em0_3 - em7_3

!Нет описания!

em0_4 - em7_4

!Нет описания!

em0_5 - em7_5

!Нет описания!


npc_trainer

Таблица `npc_trainer`

Таблица тренеров. Хранятся данные о спеллах, обучаемые тренерами.

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
entry | int(11) |  | NO | PRI | 0 |
spell | int(11) |  | NO | PRI | 0 |
spellcost | int(11) |  | YES |  | 0 |
reqskill | int(10) | unsigned | YES |  | 0 |
reqskillvalue | int(10) | unsigned | YES |  | 0 |
reqlevel | int(10) | unsigned | YES |  | 0 |

Описание полей таблицы

entry

Идентификатор NPC (См. mangos.creature_template.entry).

spell

Номер "train" спелла (См. Spell.dbc).

spellcost

Стоимость обучения в формате GGSSCC (GG - золото, SS- серебро, СС - медь).

reqskill

Скил, который игрок должен иметь.

reqskillvalue

Необходимое значение скила.

reqlevel

Требуемый уровень.


npc_vendor

Таблица `npc_vendor`

Содержит привязку между торговцами и продаваемым товаром.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | mediumint(8) | unsigned | NO | 0 |
item | mediumint(8) | unsigned | NO | 0 |
maxcount | tinyint(3) | unsigned | NO | 0 |
incrtime | int(10) | unsigned | NO | 0 |
ExtendedCost | mediumint(8) | unsigned | NO | 0 |

Описание полей таблицы

entry

Идентификатор NPC продавца (См. mangos.creature_template.entry).

item

Идентификатор предмета продажи (См. mangos.item_template.entry).

maxcount

Максимальное кол-во данного предмета, которое он может иметь для продажи, 0 - не ограниченое количество.

incrtime

Время в секундах, за которое количество данной вещи увеличивается на 'buycount'. Для задания данного поля необходимо задать maxcount. Если maxcount = 0 с нулевым временем, количество увеличивается до бесконечности.

ExtendedCost

Идентификатор уникальной цены предмета из ItemExtendedCost.dbc (хонор, арена поинты, бейджи и т. д.).


page_text

Таблица `page_text`

Таблица содержит данные о текстах, используемых в предметах.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) |  | NO | 0 |
text | longtext |  | YES |  |
next_page | bigint(20) | unsigned | NO | 0 |

Описание полей таблицы

entry

Идентификатор страницы текста.

text

Текст страницы.

next_page

Идентификатор следующей страницы текста.


pet_levelstats

Таблица `pet_levelstats`

Таблица содержит данные о статах петов в зависимости от уровня.

Поле | Тип | Атрибуты | Пусто | Поумолчанию | Экстра
creature_entry | int(11) | unsigned | NO |  |
level | tinyint(3) | unsigned | NO |  |
hp | smallint(5) | unsigned | NO |  |
mana | smallint(5) | unsigned | NO |  |
armor | int(10) | unsigned | NO | 0 |
str | smallint(5) | unsigned | NO |  |
agi | smallint(5) | unsigned | NO |  |
sta | smallint(5) | unsigned | NO |  |
int | smallint(5) | unsigned | NO |  |
spi | smallint(5) | unsigned | NO |  |

Описание полей таблицы

creature_entry

Идентификатор шаблона питомца (См. mangos.creature_template.entry)

level

Уровень.

hp

Healing points (очки жизни) хэпэ)

mana

Мана.

armor

Броня.

str

Сила.

agi

Ловкость.

sta

Стойкость.

int

Интеллект.

spi

Дух.


pet_name_generation

Таблица `pet_name_generation`

Таблица используется для генерации имен петов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) |  | NO |  |
word | tinytext |  | NO |  |
entry | int(11) |  | NO | 0 |
half | int(11) |  | NO | 0 |

Описание полей таблицы

id

!Нет описания!

word

!Нет описания!

entry

!Нет описания!

half

!Нет описания!


petcreateinfo_spell

Таблица `petcreateinfo_spell`

Содержит данные о спеллах, даваемых питомцам при приручении.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
Spell1 | int(11) | unsigned | NO | 0 |
Spell2 | int(11) | unsigned | NO | 0 |
Spell3 | int(11) | unsigned | NO | 0 |
Spell4 | int(11) | unsigned | NO | 0 |
FamilyPassive | int(11) | unsigned | NO | 0 |

Описание полей таблицы

entry

Идентификатор шаблона существа (См. mangos.creature_template.entry).

Spell1.-5.

Идентификатор спелла (См. Spell.dbc).

FamilyPassive

!Нет описания!


pickpocketing_loot_template

Таблица `pickpocketing_loot_template`

Таблица лута пикпокета (при луте вором).

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 |
ChanceOrRef | float |  | NO | 100 |
QuestChanceOrGroup | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 1 |
maxcount | tinyint(3) | unsigned | NO | 1 |
quest_freeforall | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

entry

Идентификатор лута (См. mangos.creature_template.pickpocketloot).

item

Идентификатор предмета (См. mangos.item_template.entry).

ChanceOrRef

Шанс выпадения итема в процентах (0..100)
Или ссылка на другой лут entry, если значение меньше нуля (-entry).

QuestChanceOrGroup

Квестовый шанс дропа в процентах (0..100)
Или группа дропа, если значение меньше нуля. Выпадает максимум один предмет из группы.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

quest_freeforall

Определяет, как будет лутиться квестовый предмет:

1 - предмет для каждого, кто с квестом
0 - только для одного, кто с квестом


player_classlevelstats

Таблица `player_classlevelstats`

Таблица содержит данные о статах игроков в зависимости от класса и уровня.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
class | tinyint(3) | unsigned | NO |  |
level | tinyint(3) | unsigned | NO |  |
basehp | smallint(5) | unsigned | NO |  |
basemana | smallint(5) | unsigned | NO |  |

Описание полей таблицы

class

Номер класса.

ID | Раса
1 | Warrior
2 | Paladin
3 | Hunter
4 | Rogue
5 | Priest
7 | Shaman
8 | Mage
9 | Warlock
11 | Druid

level

Уровень.

basehp

Базовые Жизни для игрока данного класса и уровня.

basemana

Базовая Мана для игрока данного класса и уровня.


player_levelstats

Таблица `player_levelstats`

Таблица содержит данные о статах игроков в зависимости от расы, класса и уровня.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
race | tinyint(3) | unsigned | NO |  |
class | tinyint(3) | unsigned | NO |  |
level | tinyint(3) | unsigned | NO |  |
hp | smallint(5) | unsigned | NO |  |
mana | smallint(5) | unsigned | NO |  |
str | tinyint(3) | unsigned | NO |  |
agi | tinyint(3) | unsigned | NO |  |
sta | tinyint(3) | unsigned | NO |  |
int | tinyint(3) | unsigned | NO |  |
spi | tinyint(3) | unsigned | NO |  |

Описание полей таблицы

race

Номер расы.

ID | Раса
1 | Human
2 | Orc
3 | Dwarf
4 | NightElf
5 | Undead
6 | Tauren
7 | Gnome
8 | Troll
10 | BloodElf
11 | Draenei

class

Номер класса.

ID | Раса
1 | Warrior
2 | Paladin
3 | Hunter
4 | Rogue
5 | Priest
7 | Shaman
8 | Mage
9 | Warlock
11 | Druid

level

Уровень.

hp

ХП для игрока данной расы, класса и уровня.

mana

Мана.

str

Сила.

agi

Ловкость.

sta

Стойкость.

int

Интеллект.

spi

Дух.


playercreateinfo

Таблица `playercreateinfo`

Таблица содержит стартовые координаты для игрока определенной расы и класса.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
race | tinyint(3) | unsigned | NO | 0 |
class | tinyint(3) | unsigned | NO | 0 |
map | mediumint(8) | unsigned | NO | 0 |
zone | mediumint(8) | unsigned | NO | 0 |
position_x | float |  | NO | 0 |
position_y | float |  | NO | 0 |
position_z | float |  | NO | 0 |

Описание полей таблицы

race

Раса персонажа.

class

Класс пероснажа.

map

Карта, на которой начинает пероснаж.

zone

Зона, на которой начинает пероснаж.

position_x

Координата Х стартовой позиции.

position_y

Координата Y стартовой позиции.

position_z

Координата Z стартовой позиции.


playercreateinfo_action

Таблица `playercreateinfo_action`

Таблица содержит начальные настройки кнопок игрока.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
race | tinyint(3) | unsigned | NO | 0 |
class | tinyint(3) | unsigned | NO | 0 |
button | smallint(2) | unsigned | NO | 0 |
action | smallint(6) | unsigned | NO | 0 |
type | smallint(3) | unsigned | NO | 0 |
misc | smallint(3) | unsigned | NO | 0 |

Описание полей таблицы

race

Раса персонажа.

class

Класс персонажа.

button

Номер кнопки, на которую задана связка. Может принимать следующие значения:

0.....11 - Первый набор стандартной панели
12....23 - Второй набор стандартной панели
24....35 - Третий набор стандартной и правой бовокой панели
36....47 - Четвертый набор стандартной и второй правой боковой панели
48....59 - Пятый набор стандартной и нижней правой панели
60....71 - Шестой набор стандартной и нижней левой панели
72....83 - Первая специальная панель
84....95 - Вторая специальная панель
96...107 - Третья специальная панель
118..119 - Четвертая специальная панель

action

Номер записи действия, привязанного к этой кнопке. Может быть номером спелла (См. Spell.dbc), номером шаблона предмета (См. mangos.item_template.entry) или номером макрокоманды на стороне клиента, в зависимости от значения поля Type.

type

Тип кнопки. Влияет на интерпретацию поля action. Может принимать следующие значения:

0   - Спелл
64  - Макрокоманда
128 - Предмет

misc

Передаваемое клиенту 'дополнительное' значение.


playercreateinfo_item

Таблица `playercreateinfo_item`

Таблица содержит данные о предметах, которые даются игроку в самом начале.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
race | tinyint(3) | unsigned | NO | 0 |
class | tinyint(3) | unsigned | NO | 0 |
itemid | mediumint(8) | unsigned | NO | 0 |
amount | tinyint(8) | unsigned | NO | 1 |

Описание полей таблицы

race

Раса персонажа.

class

Класс персонажа.

itemid

Идентификатор предмета (См. mangos.item_template.entry).

amount

Количество предметов.


playercreateinfo_skill

Таблица `playercreateinfo_skill`

Таблица содержит данные о скиллах для нового игрока.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
race | tinyint(3) | unsigned | NO | 0 |
class | tinyint(3) | unsigned | NO | 0 |
Skill | mediumint(8) | unsigned | NO | 0 |
Note | varchar(255) |  | YES |  |

Описание полей таблицы

race

Раса персонажа.

class

Класс персонажа.

Skill

Номер скилла.

Note

Заметка к скиллу (Чаще всего название скилла).


playercreateinfo_spell

Таблица `playercreateinfo_spell`

Таблица содержит данные о спеллах нового игрока.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
race | tinyint(3) | unsigned | NO | 0 |
class | tinyint(3) | unsigned | NO | 0 |
Spell | bigint(20) | unsigned | NO | 0 |
Note | varchar(255) |  | YES |  |
Active | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

race

Раса персонажа.

class

Класс персонажа.

Spell

Номер спелла (См. Spell.dbc).

Note

Заметка к спеллу (Чаще всего название спелла).

Active

Активный или пассивный спелл.

1 - активный
0 - пассивный


points_of_interest

Таблица `points_of_interest`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
x | float | unsigned | NO | 0 |
y | float | unsigned | NO | 0 |
icon | mediumint(8) | unsigned | NO | 0 |
flag | mediumint(8) | unsigned | NO | 0 |
data | mediumint(8) | unsigned | NO | 0 |
icon_name | text |  | YES |  |

Описание полей таблицы

entry

Уникальный идентификатоp

x

X-координата размещение цели поиска


pool_creature

Таблица `pool_creature`

Contains all pool instances that participate to any game event.

Structure

Field | Type | Null | Key | Default | Extra
guid | int(10) unsigned | NO | PRI | 0 |
pool_entry | mediumint(8) unsigned | NO | PRI | 0 |
chance | float unsigned | NO |  | 0 |

Description of the fields

guid

Creature's GUID. Смотрим Creature.

pool_entry

Pool's ID. See pool_template

chance

Шанс спауна моба.


pool_gameobject

The `pool_gameobject` table

Contains all pool instances that participate to any game event.

Structure

Field | Type | Null | Key | Default | Extra
guid | int(10) unsigned | NO | PRI | 0 |
pool_entry | mediumint(8) unsigned | NO | PRI | 0 |
chance | float unsigned | NO |  | 0 |

Description of the fields

guid

Gameobject's GUID. A reference to Gameobject.

pool_entry

Pool's ID. See pool_template

chance

Chance the gameobject will be spawned in the pool.


pool_template

The `pool_template` table

Contains all pool instances that participate to any game event.

Structure

Field | Type | Null | Key | Default | Extra
entry | mediumint(8) unsigned | NO | PRI | 0 |
max_limit | int(10) unsigned | NO |  | 0 |

Description of the fields

entry

Pool's ID.

max_limit

Max number of objects (0) is no limit.


prospecting_loot_template

Таблица `prospecting_loot_template`

Таблица лута prospecting.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 |
ChanceOrRef | float |  | NO | 100 |
QuestChanceOrGroup | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 1 |
maxcount | tinyint(3) | unsigned | NO | 1 |
quest_freeforall | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

entry

Идентификатор предмета, из которого лут (См. mangos.item_template.entry).

item

Идентификатор предмета, который лутится (См. mangos.item_template.entry).

ChanceOrRef

Шанс выпадения итема в процентах (0..100)
Или ссылка на другой лут entry, если значение меньше нуля (-entry).

QuestChanceOrGroup

Квестовый шанс дропа в процентах (0..100)
Или группа дропа, если значение меньше нуля. Выпадает максимум один предмет из группы.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

quest_freeforall

Определяет, как будет лутиться квестовый предмет:

1 - предмет для каждого, кто с квестом
0 - только для одного, кто с квестом


quest_end_scripts

Таблица `quest_end_scripts`

Эта таблица одна из 5 таблиц активирующих скрипты

gameobject_scripts: необходим 1 тип ГО GAMEOBJECT_TYPE_BUTTON (1).
spell_scripts: необходимо присутствие у спелла SPELL_EFFECT_SCRIPT_EFFECT (77).
quest_start_scripts: Активация скрипта при взятии квеста.
quest_end_scripts: Активация скрипта при сдаче квеста.
event_scripts: необходимо присутствие у спелла SPELL_EFFECT_SEND_EVENT (61).

Таблица скриптов, выполняемых по окончанию квеста.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
delay | int(11) | unsigned | NO | 0 |
command | int(11) | unsigned | NO | 0 |
datalong | int(11) | unsigned | NO | 0 |
datalong2 | int(11) | unsigned | NO | 0 |
datatext | text |  | NO |  |
x | float |  | NO | 0 |
y | float |  | NO | 0 |
z | float |  | NO | 0 |
o | float |  | NO | 0 |

Описание полей таблицы

id

Номер квеста.

delay

Время задержки перед выполнением скрипта.

command

Константа, определяющая тип скрипта, и смысл остальных полей.

Может принимать следующие значения:

SCRIPT_COMMAND_SAY | 0 | Говорить
SCRIPT_COMMAND_EMOTE | 1 | Проявить эмоцию
SCRIPT_COMMAND_FIELD_SET | 2 | Установить поле
SCRIPT_COMMAND_MOVE_TO | 3 | Двигаться
SCRIPT_COMMAND_FLAG_SET | 4 | Установить флаг(двоичный?)
SCRIPT_COMMAND_FLAG_REMOVE | 5 | Снять флаг
SCRIPT_COMMAND_TELEPORT_TO | 6 | Телепортироваться
SCRIPT_COMMAND_QUEST_EXPLORED | 7 | Завершение квестов (на экскорт)?
SCRIPT_COMMAND_RESPAWN_GAMEOBJECT | 9 | Респавн объекта
SCRIPT_COMMAND_TEMP_SUMMON_CREATURE | 10 | Призвать существо
SCRIPT_COMMAND_OPEN_DOOR | 11 | Открыть дверь
SCRIPT_COMMAND_CLOSE_DOOR | 12 | Закрыть дверь

datalong

command | смысл поля
0 | игнорируется
1 | ИД эмоции из dbc
2 | Индекс поля
3 | игнорируется
4 | Индекс поля
5 | Индекс поля
6 | Номер Карты
10 | Идентификатор существа

datalong2

command | смысл поля
0 | игнорируется
1 | игнорируется
2 | значение поля
3 | Время движения
4 | устанавливаемый флаг
5 | удаляемый флаг
6 | игнорируется
10 | Время присутствия существа в мире после каста

datatext

command | смысл поля
0 | произносимый текст
1,2,3,4,5,6,10 | игнорируется

x

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | x-координата для результата действия скрипта

y

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | y-координата для результата действия скрипта

z

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | z-координата для результата действия скрипта

o

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | ориентация для результата действия скрипта


quest_start_scripts

Таблица `quest_start_scripts`

Эта таблица одна из 5 таблиц активирующих скрипты

gameobject_scripts: необходим 1 тип ГО GAMEOBJECT_TYPE_BUTTON (1).
'spell_scripts: необходимо присутствие у спелла SPELL_EFFECT_SCRIPT_EFFECT (77).
quest_start_scripts: Активация скрипта при взятии квеста.
quest_end_scripts: Активация скрипта при сдаче квеста.
event_scripts: необходимо присутствие у спелла SPELL_EFFECT_SEND_EVENT (61).

Таблица скриптов, выполняемых при взятии квеста.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
delay | int(11) | unsigned | NO | 0 |
command | int(11) | unsigned | NO | 0 |
datalong | int(11) | unsigned | NO | 0 |
datalong2 | int(11) | unsigned | NO | 0 |
datatext | text |  | NO |  |
x | float |  | NO | 0 |
y | float |  | NO | 0 |
z | float |  | NO | 0 |
o | float |  | NO | 0 |

Описание полей таблицы

id

Номер квеста.

delay

Время задержки перед выполнением скрипта.

command

Константа, определяющая тип скрипта, и смысл остальных полей.

Значение | Название | Описание
0 | SAY | Говорить
1 | EMOTE | Проявить эмоцию
2 | FIELD_SET | Установить поле
3 | MOVE_TO | Двигаться
4 | FLAG_SET | Установить флаг(двоичный)
5 | FLAG_REMOVE | Снять флаг
6 | TELEPORT_TO | Телепортироваться
7 | SCRIPT_COMMAND_QUEST_COMPLETE | Завершение квестов (на экскорт)
9 | RESPAWN_GAMEOBJECT | Спавнит ГО (заранее поставленый)
10 | TEMP_SUMMON | Призвать существо

datalong

command | смысл поля
0 | игнорируется
1 | Идентификатор эмоции (См. Emotes.dbc)
2 | Индекс поля
3 | игнорируется
4 | Индекс поля
5 | Индекс поля
6 | Номер Карты
7 | Entry квеста
9 | Guid ГеймОбьекта для спавна
10 | Идентификатор существа

datalong2

command | смысл поля
0 | игнорируется
1 | игнорируется
2 | значение поля
3 | Время движения
4 | устанавливаемый флаг
5 | удаляемый флаг
6 | игнорируется
7 | Радиус, внутри которого игрокам будет засчитан квест
9 | Время деспавна обьекта
10 | Время деспавна существа

datatext

command | смысл поля
0 | произносимый текст
1,2,3,4,5,6,10 | игнорируется

x

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | x-координата для результата действия скрипта

y

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | y-координата для результата действия скрипта

z

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | z-координата для результата действия скрипта

o

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | ориентация для результата действия скрипта


quest_template

Материал из WoW pedia.

Перейти к: навигация, поиск

Содержание

  • 1 Таблица `quest_template`
  • 2 Описание полей таблицы
    • 2.1 entry
    • 2.2 ZoneOrSort
    • 2.3 ClassOrSkill
    • 2.4 MinLevel
    • 2.5 QuestLevel
    • 2.6 Type
    • 2.7 RequiredRaces
    • 2.8 RequiredSkillValue
    • 2.9 RequiredMinRepFaction
    • 2.10 RequiredMinRepValue
    • 2.11 RequiredMaxRepFaction
    • 2.12 RequiredMaxRepValue
    • 2.13 SuggestedPlayers
    • 2.14 LimitTime
    • 2.15 QuestFlags
    • 2.16 SpecialFlags
    • 2.17 CharTitleId
    • 2.18 PrevQuestId
    • 2.19 NextQuestId
    • 2.20 ExclusiveGroup
    • 2.21 NextQuestInChain
    • 2.22 srcItemId
    • 2.23 srcItemCount
    • 2.24 SrcSpell
    • 2.25 Title
    • 2.26 Details
    • 2.27 Objectives
    • 2.28 OfferRewardText
    • 2.29 RequestItemsText
    • 2.30 EndText
    • 2.31 ObjectiveText1-4
    • 2.32 ReqItemId1-4
    • 2.33 ReqItemCount1-4
    • 2.34 ReqSourceId1-4
    • 2.35 ReqSourceCount1-4
    • 2.36 ReqSourceRef1-4
    • 2.37 ReqCreatureOrGOId1-4
    • 2.38 ReqCreatureOrGOCount1-4
    • 2.39 ReqSpellCast1-4
    • 2.40 RewChoiceItemId1-6
    • 2.41 RewChoiceItemCount1-6
    • 2.42 RewItemId1-4
    • 2.43 RewItemCount1-4
    • 2.44 RewRepFaction1-5
    • 2.45 RewRepValue1-5
    • 2.46 RewOrReqMoney
    • 2.47 RewMoneyMaxLevel
    • 2.48 RewSpell
    • 2.49 RewSpellCast
    • 2.50 PointMapId
    • 2.51 PointX
    • 2.52 PointY
    • 2.53 PointOpt
    • 2.54 DetailsEmote1-4
    • 2.55 IncompleteEmote
    • 2.56 CompleteEmote
    • 2.57 OfferRewardEmote1-4
    • 2.58 StartScript
    • 2.59 CompleteScript

Таблица `quest_template`

Таблица для всех существующих квестов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | mediumint(8) | unsigned | NO | 0 |
ZoneOrSort | smallint(6) | unsigned | NO | 0 |
ClassOrSkill | smallint(6) | unsigned | NO | 0 |
MinLevel | tinyint(3) | unsigned | NO | 0 |
QuestLevel | tinyint(3) | unsigned | NO | 0 |
Type | smallint(5) | unsigned | NO | 0 |
RequiredRaces | smallint(5) | unsigned | NO | 0 |
RequiredSkillValue | smallint(5) | unsigned | NO | 1 |
RequiredMinRepFaction | smallint(5) | unsigned | NO | 0 |
RequiredMinRepValue | mediumint(9) | unsigned | NO | 0 |
RequiredMaxRepFaction | smallint(5) | unsigned | NO | 0 |
RequiredMaxRepValue | mediumint(9) | unsigned | NO | 0 |
SuggestedPlayers | tinyint(3) | unsigned | NO | 0 |
LimitTime | int(10) | unsigned | NO | 0 |
QuestFlags | smallint(5) | unsigned | NO | 0 |
SpecialFlags | tinyint(3) | unsigned | NO | 0 |
CharTitleId | tinyint(3) |  | NO | 0 |
PrevQuestId | mediumint(9) |  | NO | 0 |
NextQuestId | mediumint(9) |  | NO | 0 |
ExclusiveGroup | mediumint(9) | unsigned | NO | 0 |
NextQuestInChain | mediumint(8) | unsigned | NO | 0 |
SrcItemId | mediumint(8) | unsigned | NO | 0 |
SrcItemCount | tinyint(3) | unsigned | NO | 0 |
SrcSpell | mediumint(8) | unsigned | NO | 0 |
Title | text |  | YES |  |
Details | text |  | YES |  |
Objectives | text |  | YES |  |
OfferRewardText | text |  | YES |  |
RequestItemsText | text |  | YES |  |
EndText | text |  | YES |  |
ObjectiveText1 | text |  | YES |  |
ObjectiveText2 | text |  | YES |  |
ObjectiveText3 | text |  | YES |  |
ObjectiveText4 | text |  | YES |  |
ReqItemId1 | mediumint(8) | unsigned | NO | 0 |
ReqItemId2 | mediumint(8) | unsigned | NO | 0 |
ReqItemId3 | mediumint(8) | unsigned | NO | 0 |
ReqItemId4 | mediumint(8) | unsigned | NO | 0 |
ReqItemCount1 | smallint(5) | unsigned | NO | 0 |
ReqItemCount2 | smallint(5) | unsigned | NO | 0 |
ReqItemCount3 | smallint(5) | unsigned | NO | 0 |
ReqItemCount4 | smallint(5) | unsigned | NO | 0 |
ReqSourceId1 | mediumint(8) | unsigned | NO | 0 |
ReqSourceId2 | mediumint(8) | unsigned | NO | 0 |
ReqSourceId3 | mediumint(8) | unsigned | NO | 0 |
ReqSourceId4 | mediumint(8) | unsigned | NO | 0 |
ReqSourceCount1 | smallint(5) | unsigned | NO | 0 |
ReqSourceCount2 | smallint(5) | unsigned | NO | 0 |
ReqSourceCount3 | smallint(5) | unsigned | NO | 0 |
ReqSourceCount4 | smallint(5) | unsigned | NO | 0 |
ReqSourceRef1 | tinyint(3) | unsigned | NO | 0 |
ReqSourceRef2 | tinyint(3) | unsigned | NO | 0 |
ReqSourceRef3 | tinyint(3) | unsigned | NO | 0 |
ReqSourceRef4 | tinyint(3) | unsigned | NO | 0 |
ReqCreatureOrGOId1 | mediumint(9) |  | NO | 0 |
ReqCreatureOrGOId2 | mediumint(9) |  | NO | 0 |
ReqCreatureOrGOId3 | mediumint(9) |  | NO | 0 |
ReqCreatureOrGOId4 | mediumint(9) |  | NO | 0 |
ReqCreatureOrGOCount1 | smallint(5) | unsigned | NO | 0 |
ReqCreatureOrGOCount2 | smallint(5) | unsigned | NO | 0 |
ReqCreatureOrGOCount3 | smallint(5) | unsigned | NO | 0 |
ReqCreatureOrGOCount4 | smallint(5) | unsigned | NO | 0 |
ReqSpellCast1 | mediumint(8) | unsigned | NO | 0 |
ReqSpellCast2 | mediumint(8) | unsigned | NO | 0 |
ReqSpellCast3 | mediumint(8) | unsigned | NO | 0 |
ReqSpellCast4 | mediumint(8) | unsigned | NO | 0 |
RewChoiceItemId1 | mediumint(8) | unsigned | NO | 0 |
RewChoiceItemId2 | mediumint(8) | unsigned | NO | 0 |
RewChoiceItemId3 | mediumint(8) | unsigned | NO | 0 |
RewChoiceItemId4 | mediumint(8) | unsigned | NO | 0 |
RewChoiceItemId5 | mediumint(8) | unsigned | NO | 0 |
RewChoiceItemId6 | mediumint(8) | unsigned | NO | 0 |
RewChoiceItemCount1 | smallint(5) | unsigned | NO | 0 |
RewChoiceItemCount2 | smallint(5) | unsigned | NO | 0 |
RewChoiceItemCount3 | smallint(5) | unsigned | NO | 0 |
RewChoiceItemCount4 | smallint(5) | unsigned | NO | 0 |
RewChoiceItemCount5 | smallint(5) | unsigned | NO | 0 |
RewChoiceItemCount6 | smallint(5) | unsigned | NO | 0 |
RewItemId1 | mediumint(8) | unsigned | NO | 0 |
RewItemId2 | mediumint(8) | unsigned | NO | 0 |
RewItemId3 | mediumint(8) | unsigned | NO | 0 |
RewItemId4 | mediumint(8) | unsigned | NO | 0 |
RewItemCount1 | smallint(5) | unsigned | NO | 0 |
RewItemCount2 | smallint(5) | unsigned | NO | 0 |
RewItemCount3 | smallint(5) | unsigned | NO | 0 |
RewItemCount4 | smallint(5) | unsigned | NO | 0 |
RewRepFaction1 | smallint(5) | unsigned | NO | 0 | faction id from Faction.dbc in this case
RewRepFaction2 | smallint(5) | unsigned | NO | 0 | faction id from Faction.dbc in this case
RewRepFaction3 | smallint(5) | unsigned | NO | 0 | faction id from Faction.dbc in this case
RewRepFaction4 | smallint(5) | unsigned | NO | 0 | faction id from Faction.dbc in this case
RewRepFaction5 | smallint(5) | unsigned | NO | 0 | faction id from Faction.dbc in this case
RewRepValue1 | mediumint(9) |  | NO | 0 |
RewRepValue2 | mediumint(9) |  | NO | 0 |
RewRepValue3 | mediumint(9) |  | NO | 0 |
RewRepValue4 | mediumint(9) |  | NO | 0 |
RewRepValue5 | mediumint(9) |  | NO | 0 |
RewOrReqMoney | int(11) |  | NO | 0 |
RewMoneyMaxLevel | int(10) | unsigned | NO | 0 |
RewSpell | mediumint(8) | unsigned | NO | 0 |
RewSpellCast | mediumint(8) | unsigned | NO | 0 |
PointMapId | smallint(5) | unsigned | NO | 0 |
PointX | float |  | NO | 0 |
PointY | float |  | NO | 0 |
PointOpt | mediumint(8) | unsigned | NO | 0 |
DetailsEmote1 | smallint(5) |  | NO | 0 |
DetailsEmote2 | smallint(5) |  | NO | 0 |
DetailsEmote3 | smallint(5) |  | NO | 0 |
DetailsEmote4 | smallint(5) |  | NO | 0 |
IncompleteEmote | smallint(5) | unsigned | NO | 0 |
CompleteEmote | smallint(5) | unsigned | NO | 1 |
OfferRewardEmote1 | smallint(5) |  | NO | 0 |
OfferRewardEmote2 | smallint(5) |  | NO | 0 |
OfferRewardEmote3 | smallint(5) |  | NO | 0 |
OfferRewardEmote4 | smallint(5) |  | NO | 0 |
StartScript | mediumint(8) | unsigned | NO | 0 |
CompleteScript | mediumint(8) | unsigned | NO | 0 |

Описание полей таблицы

entry

Уникальный Id квеста.

ZoneOrSort

Если значение поля > 0, то это идентификатор Зоны (См. AreaTable.dbc). Если значение поля < 0, то это идентификатор сортировки квеста (См. QuestSort.dbc).

ClassOrSkill

Определяет, какой класс или владелец какой профессии может взять квест.

Классы:

Class | ID | Name | ID
61 | Warlock | 81 | Warrior
82 | Shaman | 141 | Paladin
161 | Mage | 162 | Rogue
261 | Hunter | 262 | Priest
263 | Druid

Профессии:

Professions | ID | Name | ID
24 | Herbalism | 101 | Fishing
121 | Blacksmithing | 181 | Alchemy
182 | Leatherworking | 201 | Engineering
264 | Tailoring | 304 | Cooking
324 | First aid | 762 | Riding

MinLevel

Минимальный уровень необходимый для того, чтобы получить квест.

QuestLevel

Уровень квеста. Игрок получает весь опыт за квест лишь в том случае, если его уровень меньше либо равен значению QuestLevel+5.

Type

Тип квеста.

Значение | Тип
1 | Group
21 | Life
41 | PvP
62 | Raid
81 | Dungeon
82 | World Event
83 | Legendary
84 | Escort
85 | Heroic
87 | Daily

RequiredRaces

Расы, которые могут взять квест. Поставьте 0 чтобы разрешить квест всем расам.

1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 512 | 1024
Human | Orc | Dwarf | NightElf | Undead | Tauren | Gnome | Troll | Blood Elves | Draenei

Например: чтобы сделать квест для Humans и Dwarves, сложите 1 и 4, получите 5, это и надо записывать в поле. Альянс = 1101 , Орда = 690

RequiredSkillValue

Требуемое значение для номера скила из ячейки RequiredSkill.

RequiredMinRepFaction

Номер фракции, требуемой для взятия квеста.

RequiredMinRepValue

Игрок должен иметь значение репутации выше или равным тому, что в этом поле.

RequiredMaxRepFaction

Номер фракции, требуемой для взятия квеста.

RequiredMaxRepValue

Игрок должен иметь значение репутации меньше или равным тому, что в этом поле.

SuggestedPlayers

Количество игроков требуемых для выполнения квеста в группе (пока не реализованно в мангосе).

LimitTime

Если квест содержит временные рамки, то сюда вписывают время в секундах.

QuestFlags

QUEST_SPECIAL_FLAGS_NONE          =    0
QUEST_SPECIAL_FLAGS_DELIVER       =    1 // квест на доставку предмета
QUEST_SPECIAL_FLAGS_EXPLORATION   =    2 // квест на открытие карты
QUEST_SPECIAL_FLAGS_SPEAKTO       =    4 // квест на разговор
QUEST_SPECIAL_FLAGS_KILL_OR_CAST  =    8 // квест на убийство мобов или каст спелла
QUEST_SPECIAL_FLAGS_TIMED         =   16 // квест на время
QUEST_SPECIAL_FLAGS_UNK0          =   32
QUEST_SPECIAL_FLAGS_REPUTATION    =   64 // квест на доп. репутацию
QUEST_SPECIAL_FLAGS_UNK1          =  128 // квесты появившиеся с аддоном BC
QUEST_SPECIAL_FLAGS_UNK2          =  256
QUEST_SPECIAL_FLAGS_UNK3          =  512
QUEST_SPECIAL_FLAGS_UNK4          = 1024
QUEST_SPECIAL_FLAGS_UNK5          = 2048
QUEST_SPECIAL_FLAGS_DAILY         = 4096

SpecialFlags

Значение SpecialFlags в БД если требуется, но используется только сервером.

Значение | Описание
0x010000 (1) | QUEST_MaNGOS_FLAGS_REPEATABLE Повторяемый квест
0x020000 (2) | QUEST_MaNGOS_FLAGS_EXPLORATION_OR_EVENT Используется в SpecialFlags если квест на открытие территории, требуется каст спелла с эффектом SPELL_EFFECT_QUEST_COMPLETE, есть соответствующая запись в таблице `*_script` при использовании SCRIPT_COMMAND_QUEST_EXPLORED, устанавливается для библиотеки внешних скриптов)
0xFFFF (3) | QUEST_MaNGOS_FLAGS_DB_ALLOWED Используется, если 1 и 2

CharTitleId

!Нет описания!

PrevQuestId

Если значение > 0: то содержит id предыдущего квеста, который должен быть завершен перед началом этого квеста.
Если значение < 0: то содержит id начального квеста, который должен быть активен перед тем как этот квест может быть начат.
Если квест имеет много альтернативных предыдущих квестов ячейка NextQuestId может использоваться для урегулирования этой зависимости.

NextQuestId

Если значение > 0: то содержит id следующего квеста, если PrevQuestId для этого квеста неустановлен.
Если значение < 0: то содержит id подквеста, если PrevQuestId для этого квеста неустановлен.
Если квест имеет много альтернативных следующих квестов то ячейка PrevQuestId в следующем квесте может устранить эту проблему.

ExclusiveGroup

Позволяет определить группу квестов, для которой только один из группы может быть выбран и выполнен.
Например, если из квестов 1200, 1201 и 1202 надо позволить выбрать только один, вставьте 1200 в ExclusiveGroup для всех трех квестов.

NextQuestInChain

Определяет цепочки квестов. Детали введенного в это поле квеста автоматически открываются, когда данный квест завершится.

Работает, только если следующий квест начинается у этого же NPC или объекта.

srcItemId

Id вещи которую дает квестгивер при начале квеста.
вещи будут удалены если от квеста отказались.

srcItemCount

Кол-во вещей получаемое при начале квеста.

SrcSpell

Спел кастуемый на игрока при начале квеста. Может быть как бафом так и обучающим спелом.

Title

Заголовок квеста.

Details

Длинное описание квеста.

Objectives

Задачи квеста.
Если пусто, то квест считаеться автоматически выполненным и его можно сдать без выполнения условий.

OfferRewardText

Первый текст отправляемый игроку NPC-ом при завершении квеста.

RequestItemsText

Этот текст отправляется игроку, если он не выполнил все задачи квеста!

EndText

Этот текст отображается у игрока при открытии Questlog'а.

ObjectiveText1-4

Используется для нестандартного текста.

ReqItemId1-4

Номера требуемых предметов для завершения квеста (См. mangos.item_template.entry).

ReqItemCount1-4

Количество требуемых предметов соответственно.

ReqSourceId1-4

Эти поля используются логике ядра, отвечающей за квестовый дроп. Они позволяют игрокам получать квестовый дроп который не является предметами, требуемыми для завершения квеста (ReqItem предназначен для этого), но необходимы игроку для создания предмета доставки или для каста ReqSpellCasts.
ReqSourceId1 это ID из item_template предмета, являющегося источником для создания ReqItemX или каста ReqSpellCastX. X это значение ReqSourceRef1.
Только те предметы у которых есть шанс квестового дропа (QuestChance > 0 в *_loot_template) должны использоваться здесь как источники.
То же самое для ReqSourceId2-4.
Вы можете определить 1, 2, 3 или даже все 4 источника для одного и того же ReqItem/ReqSpellCast или использовать 4 источника для 4 ReqItems/ReqSpellCasts.

ReqSourceCount1-4

Количество предметов ReqSourceId1-4, которое игрок сможет собрать до завершения квеста.

ReqSourceRef1-4

Должно быть 0 или 1..4. смотрите описание ReqSourceId.

ReqCreatureOrGOId1-4

Значение > 0: 1.-4. Идентификаторы мобов, которых игрок должен убить/кастануть (См. mangos.creature_template.entry).
Значение < 0: 1.-4. Идентификаторы объектов, на которых игрок должен кастануть (См. mangos.gameobject_template.entry).

ReqCreatureOrGOCount1-4

Число убитых/кастов соответственно, необходимых для завершения квеста.

ReqSpellCast1-4

Номер спелла, который должен быть скастован. (См. Spell.dbc)
Если ReqSpellCastN > 0, тогда на ReqCreatureOrGOIdN должен быть скастован спелл ReqSpellCastN,
Если ReqSpellCastN = 0, тогда они должны быть убиты.

RewChoiceItemId1-6

Идентификаторы предметов доступных для выбора при получении награды за квест. (См. mangos.item_template.entry)

RewChoiceItemCount1-6

Количество предметов для RewChoiceItemId1-6.

RewItemId1-4

Идентификаторы предметов предоставляемых в качестве награды. (См. mangos.item_template.entry).

RewItemCount1-4

Количество предметов для RewItemId1-4.

RewRepFaction1-5

Идентификаторы фракций, для которых квест предоставляет репутацию.

RewRepValue1-5

Число на которое увеличиться/уменьшится число репутации у Фракций1-5 при завершении квеста.

RewOrReqMoney

Деньги получаемые за сдачу квеста (если число > 0).

RewMoneyMaxLevel

Деньги, получаемые персонажем на 70 за выполнение квеста. Так же хранит в себе значение опыта за квест, для персонажей меньше 70 уровня, который вычисляется по нижеприведённой формуле. Если квест повторяемый, ХР получается лишь один раз (первый). Общее количество получаемого опытат так же зависит от разницы между уровнем персонажа и уровнем квеста.

Формула расчёта ХР из значения в данном поле:
QuestLevel >= 65: XP = RewMoneyMaxLevel / 6.0
QuestLevel == 64: XP = RewMoneyMaxLevel / 4.8
QuestLevel == 63: XP = RewMoneyMaxLevel / 3.6
QuestLevel == 62: XP = RewMoneyMaxLevel / 2.4
QuestLevel == 61: XP = RewMoneyMaxLevel / 1.2
QuestLevel <= 60: XP = RewMoneyMaxLevel / 0.6

RewSpell

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

RewSpellCast

!Нет описания!

PointMapId

MapId точки квеста (POI).
POI будут показаны на карте когда квест активен.

PointX

X координата POI.

PointY

Y координата POI.

PointOpt

!!! Неизвестно: если вы знаете добавьте сюда информацию. !!!

DetailsEmote1-4

!!! Неизвестно: если вы знаете добавьте сюда информацию. !!!

IncompleteEmote

Эмоция показываемая игроку если квест не завершен (См. Emotes.dbc).

CompleteEmote

Эмоция показываемая игроку при завершении квеста (См. Emotes.dbc).

OfferRewardEmote1-4

!!! Неизвестно: если вы знаете добавьте сюда информацию. !!!

StartScript

Выполняет скрипт в начале квеста (См. quest_start_scripts).

CompleteScript

Выполняет скрипт при окончании квеста (См. quest_start_scripts).


reserved_name

Таблица `reserved_name`

Содержит слова, использование которых в качестве имени персонажа запрещено.

Поле | Тип | Атрибуты | Пусто | Ключ | Дефолт | Экстра
name | varchar(12) |  | NO | PRI |  |

Описание полей таблицы

name

Запрещенное имя для персонажей во время создания нового или переименования старого.


skill_discovery_template

Таблица `skill_discovery_template`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
spellId | int(11) | unsigned | NO | 0 | SpellId of the discoverable spell
reqSpell | int(11) | unsigned | NO | 0 | spell requirement
chance | float |  | NO | 0 | chance to discover

Описание полей таблицы

spellId

Номер спелла (См. Spell.dbc).

reqSpell

Номер требуемого спелла (См. Spell.dbc).

chance

Шанс, в процентах, что рецепт имеет шанс быть автоматически обнаруженным, любым использованием рецепта или определенным использованием рецепта, определенным в reqSpell


skinning_loot_template

Таблица `skinning_loot_template`

Таблица лута скининга.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 |
ChanceOrRef | float |  | NO | 100 |
QuestChanceOrGroup | tinyint(3) |  | NO | 0 |
mincount | tinyint(3) | unsigned | NO | 1 |
maxcount | tinyint(3) | unsigned | NO | 1 |
quest_freeforall | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

entry

Идентификатор лута (См. mangos.creature_template.skinloot).

item

Идентификатор предмета (См. mangos.item_template.entry).

ChanceOrRef

Шанс выпадения итема в процентах (0..100)
Или ссылка на другой лут entry, если значение меньше нуля (-entry).

QuestChanceOrGroup

Квестовый шанс дропа в процентах (0..100)
Или группа дропа, если значение меньше нуля. Выпадает максимум один предмет из группы.

mincount

Минимальное количество предметов при выпадении.

maxcount

Максимальное количество предметов при выпадении.

quest_freeforall

Определяет, как будет лутиться квестовый предмет:

1 - предмет для каждого, кто с квестом
0 - только для одного, кто с квестом


spell_affect

Таблица `spell_affect`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | smallint(5) | unsigned | NO | 0 |
effectId | tinyint(3) | unsigned | NO | 0 |
SpellId | smallint(5) | unsigned | NO | 0 |
SchoolMask | tinyint(3) | unsigned | NO | 0 |
Category | smallint(5) | unsigned | NO | 0 |
SkillID | smallint(5) | unsigned | NO | 0 |
SpellFamily | tinyint(3) | unsigned | NO | 0 |
SpellFamilyMask | int(10) | unsigned | NO | 0 |
Charges | smallint(5) | unsigned | NO | 0 |

Описание полей таблицы

entry

Порядковый номер.

effectId

Номер эффекта (накладываемый, ударный, баф и т.д.).

SpellId

Номер спелла (См. Spell.dbc).

SchoolMask

!Нет описания!

Category

!Нет описания!

SkillID

!Нет описания!

SpellFamily

!Нет описания!

SpellFamilyMask

!Нет описания!

Charges

!Нет описания!


spell_chain

Таблица `spell_chain`

Определяет цепочки заклинаний в порядке от большего ранга к меньшему. (в spell_chain нужна запись только только для спелов которые учятся начиная с таланта - для того чтобы кооректно разучиваться, и для спелов котрые должны заменят друг друга в spellbook по мере изучения. Для остальных случаев наличие spell_chain только делает некоторые проверки более мендленными.) by Vladimir

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
spell_id | int(5) |  | NO | 0 |
prev_spell | int(5) |  | NO | 0 |
first_spell | int(5) |  | NO | 0 |
rank | tinyint(4) |  | NO | 0 |

Описание полей таблицы

spell_id

ID заклинания (См. Spell.dbc).

prev_spell

ID предыдущего заклинания в цепочке (См. Spell.dbc).

first_spell

ID первого заклинания в цепочке (См. Spell.dbc).

rank

Компоновка материалов: DeusModus


spell_bonus_damage

Таблица `spell_bonus_damage`

Добавлена Chestr, чтобы не было необходимости прописывать эти данные в коде.

Данный бонус не будет применён на некоторые абилки (с эффектом weapon damage и школой нормал (физические абилки))
Бонус будет применён 2 раза для спеллов с эффектом weapon damage и школой != normal.
Проблемные абилки в основном у паладинов - у них идёт холи урон у спеллов с weapon damage, weapon % damage и подобных.
Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
direct_bonus | нет данных |  | нет данных | 0 |
dot_bonus | нет данных |  | нет данных | 0 |
ap_bonus | нет данных |  | нет данных | 0 |

Описание полей таблицы

direct_bonus

Коэффициент для direct damage части спелла.

dot_bonus

Коэффциент для 1 тика от дота (на вики коэффициент часто пишут суммарный от всех тиков).

ap_bonus

Бонус от Attack Power (в основном паладины).


spell_elixir

Таблица `spell_elixir`

Поле | Тип | Атрибуты | Пусто | Key | Дефолт | Экстра
entry | int(11) | unsigned | NO | PRI | 0 |
mask | tinyint(5) | unsigned | NO |  | 0 |

Описание полей таблицы

entry

ID заклинания (См. Spell.dbc), используемые эликсиром.

mask

Тип элексира.

Value | Тип
1 | Battle
2 | Guardian
3 | Flask
7 | Unstable flask
11 | Shattrath flask


spell_learn_spell

Таблица `spell_learn_spell`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | smallint(6) | unsigned | NO | 0 |
SpellID | smallint(6) | unsigned | NO | 0 |
IfNoSpell | smallint(6) | unsigned | NO | 0 |

Описание полей таблицы

entry

!Нет описания!

SpellID

!Нет описания!

IfNoSpell

!Нет описания!


spell_proc_event

Таблица `spell_proc_event`

Определяет требования для каста спелл при событиях. Переопределяет установки Spell.dbc, если предусмотрено.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | smallint(6) | unsigned | NO | 0 |
SchoolMask | tinyint(4) |  | NO | 0 |
Category | smallint(6) |  | NO | 0 |
SkillID | smallint(6) |  | NO | 0 |
SpellFamilyName | smallint(6) | unsigned | NO | 0 |
SpellFamilyMask | bigint(40) | unsigned | NO | 0 |
procFlags | int(11) | unsigned | NO | 0 |
ppmRate | float |  | NO | 0 |
cooldown | int(10) | unsigned | NO | 0 |

Описание полей таблицы

Entry

ID заклинания, которое будет срабатывать по событию, указанному в поле procFlags.

SchoolMask

Если не 0, то битовая маска для проверки соответствия условия на основе школы проверяемого спелла: Fire=2, Mask=1<<(2-1)=2.

School ID | Bit | Name
0 | 1 | Physical
1 | 2 | Holy
2 | 4 | Fire
3 | 8 | Nature
4 | 16 | Frost
5 | 32 | Shadow
6 | 64 | Arcane

Category

Если не 0, то условие для проверки соответствия на основе категории проверяемого спелла.

SkillID

Номер скилла (См. SkillLine.dbc).

SpellFamilyName

This field controls what family name spells can proc the triggered spell.

ID | Family Name
0 | Generic
3 | Mage
4 | Warrior
5 | Warlock
6 | Priest
7 | Druid
8 | Rogue
9 | Hunter
10 | Paladin
11 | Shaman
13 | Potion

SpellFamilyMask

This field controls what spells' family flags can proc the triggered spell.

procFlags

Флаг события принимающее значение:

Название | HEX значение | Значение | Коментарий
PROC_FLAG_NONE | 0x00000000 | 0 | Нет
PROC_FLAG_HIT_MELEE | 0x00000001 | 1 | При Melee ударе
PROC_FLAG_STRUCK_MELEE | 0x00000002 | 2 | При получении Melee удара
PROC_FLAG_KILL_XP_GIVER | 0x00000004 | 4 | При убийстве цели, дающем XP или хонор
PROC_FLAG_SPECIAL_DROP | 0x00000008 | 8 |
PROC_FLAG_DODGE | 0x00000010 | 16 | При увертывании от Melee атаки
PROC_FLAG_PARRY | 0x00000020 | 32 | При парировании Melee атаки
PROC_FLAG_BLOCK | 0x00000040 | 64 | При блокировании атаки
PROC_FLAG_TOUCH | 0x00000080 | 128 | При прикосновении (для бомб, наверное?)
PROC_FLAG_TARGET_LOW_HEALTH | 0x00000100 | 256 | При нанесении повреждения цели с 20% или менее здоровья
PROC_FLAG_LOW_HEALTH | 0x00000200 | 512 | При падении здоровья ниже 20%
PROC_FLAG_STRUCK_RANGED | 0x00000400 | 1024 | При получении Ranged удара
PROC_FLAG_HIT_SPECIAL | 0x00000800 | 2048 | (!)Удалено, возможно будет переназначено в будущем
PROC_FLAG_CRIT_MELEE | 0x00001000 | 4096 | При критическом Melee ударе
PROC_FLAG_STRUCK_CRIT_MELEE | 0x00002000 | 8192 | При получении критического Melee удара
PROC_FLAG_CAST_SPELL | 0x00004000 | 16384 | При касте спелла (??? and broken Aspect of Hawk)
PROC_FLAG_TAKE_DAMAGE | 0x00008000 | 32768 | При получении повреждения
PROC_FLAG_CRIT_SPELL | 0x00010000 | 65536 | При критическом ударе спелла
PROC_FLAG_HIT_SPELL | 0x00020000 | 131072 | При ударе спелла
PROC_FLAG_STRUCK_CRIT_SPELL | 0x00040000 | 262144 | При получении критического удара спеллом
PROC_FLAG_HIT_RANGED | 0x00080000 | 524288 | При Ranged ударе
PROC_FLAG_STRUCK_SPELL | 0x00100000 | 1048576 | При получении удара спеллом
PROC_FLAG_TRAP | 0x00200000 | 2097152 | При активации ловушки (?)
PROC_FLAG_CRIT_RANGED | 0x00400000 | 4194304 | При критическом Ranged ударе
PROC_FLAG_STRUCK_CRIT_RANGED | 0x00800000 | 8388608 | При получении критического Ranged удара
PROC_FLAG_RESIST_SPELL | 0x01000000 | 16777216 | При сопротивлении вражескому спеллу
PROC_FLAG_TARGET_RESISTS | 0x02000000 | 33554432 | При сопротивлении врага спеллу
PROC_FLAG_TARGET_AVOID_ATTACK | 0x04000000 | 67108864 | При блоке(Block)/уклонении(Dodge)/парировании(Parry) врагом
PROC_FLAG_HEAL | 0x08000000 | 134217728 | При лечении кого-то
PROC_FLAG_CRIT_HEAL | 0x10000000 | 268435456 | При критическом лечащем эффекте
PROC_FLAG_HEALED | 0x20000000 | 536870912 | При лечении кем-то
PROC_FLAG_TARGET_BLOCK |  | 1073741824 | При блоке врага
PROC_FLAG_HEALED |  | 2147483648 | On miss melee attack

В поле procFlags нужно подставлять значения взятые из таблицы приведенной выше в десятичном виде.

Например:
 Для события PROC_FLAG_TOUCH в шестнадцатеричном формате будет 0x00000080. С помощью инженерного
 калькулятора переводим это число в десятичный формат и получаем 128. Это значение и подставляем в
 поле.

ppmRate

Proc Per Minuts
Максимальное количество проков в минуту.

cooldown

Минимальное время между проками


spell_script_target

Таблица `spell_script_target`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(6) | unsigned | NO | NOTNULL |
type | int(8) | unsigned | NO | 0 |
targetEntry | int(11) |  | NO | 0 |

Описание полей таблицы

entry

ID спелла (См. Spell.dbc).

type

0 - gameobject (ГО)
1 - creature (живой моб)
2 - dead creature (труп моба)

targetEntry

Если type = 0, см. mangos.gameobject_template.entry
Если type = 1 или 2, см. mangos.creature_template.entry.


spell_scripts

Таблица `spell_scripts`

Эта таблица одна из 5 таблиц активирующих скрипты

gameobject_scripts: необходим 1 тип ГО GAMEOBJECT_TYPE_BUTTON (1).
spell_scripts: необходимо присутствие у спелла SPELL_EFFECT_SCRIPT_EFFECT (77).
quest_start_scripts: Активация скрипта при взятии квеста.
quest_end_scripts: Активация скрипта при сдаче квеста.
event_scripts: необходимо присутствие у спелла SPELL_EFFECT_SEND_EVENT (61).

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
delay | int(11) | unsigned | NO | 0 |
command | int(11) | unsigned | NO | 0 |
datalong | int(11) | unsigned | NO | 0 |
datalong2 | int(11) | unsigned | NO | 0 |
datatext | text |  | NO |  |
x | float |  | NO | 0 |
y | float |  | NO | 0 |
z | float |  | NO | 0 |
o | float |  | NO | 0 |

Описание полей таблицы

id

Номер спелла из Spell.dbc (необходимо наличие в спелле SPELL_EFFECT_SEND_EVENT 61 для command=10).

delay

Время задержки перед выполнением скрипта.

command

Константа, определяющая тип скрипта, и смысл остальных полей.

Может принимать следующие значения:

SCRIPT_COMMAND_SAY | 0 | Говорить
SCRIPT_COMMAND_EMOTE | 1 | Проявить эмоцию
SCRIPT_COMMAND_FIELD_SET | 2 | Установить поле
SCRIPT_COMMAND_MOVE_TO | 3 | Двигаться
SCRIPT_COMMAND_FLAG_SET | 4 | Установить флаг(двоичный?)
SCRIPT_COMMAND_FLAG_REMOVE | 5 | Снять флаг
SCRIPT_COMMAND_TELEPORT_TO | 6 | Телепортироваться
SCRIPT_COMMAND_QUEST_EXPLORED | 7 | Завершение квестов (на экскорт)?
SCRIPT_COMMAND_RESPAWN_GAMEOBJECT | 9 | Респавн объекта
SCRIPT_COMMAND_TEMP_SUMMON_CREATURE | 10 | Призвать существо
SCRIPT_COMMAND_OPEN_DOOR | 11 | Открыть дверь
SCRIPT_COMMAND_CLOSE_DOOR | 12 | Закрыть дверь

datalong

command | смысл поля
0 | игнорируется
1 | ИД эмоции из dbc
2 | Индекс поля
3 | игнорируется
4 | Индекс поля
5 | Индекс поля
6 | Номер Карты
10 | Идентификатор существа

datalong2

command | смысл поля
0 | игнорируется
1 | игнорируется
2 | значение поля
3 | Время движения
4 | устанавливаемый флаг
5 | удаляемый флаг
6 | игнорируется
10 | Время присутствия существа в мире после каста

datatext

command | смысл поля
0 | произносимый текст
1,2,3,4,5,6,10 | игнорируется

x

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | x-координата для результата действия скрипта

y

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | y-координата для результата действия скрипта

z

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | z-координата для результата действия скрипта

o

command | смысл поля
0,1,2,4,5 | игнорируется
3,6,10 | ориентация для результата действия скрипта


spell_teleport

Таблица `spell_teleport`

Телепорт при использовании спелла по координатам.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
target_map | int(11) | unsigned | NO | 0 |
target_position_x | float |  | NO | 0 |
target_position_y | float |  | NO | 0 |
target_position_z | float |  | NO | 0 |
target_orientation | float |  | NO | 0 |

Описание полей таблицы

id

Номер спелла.

target_map

Идентификатор карты.

target_position_x

координата X.

target_position_y

координата Y.

target_position_z

координата Z.

target_orientation

Ориентация цели триггера.


spell_threat

Таблица `spell_threat`

Хранит записи, содержащие значения прибавляемой агрессии у спеллов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(10) | unsigned | NO |  |
Threat | int(11) |  | NO |  |

Описание полей таблицы

entry

Идентификатор заклинания (См. spell.dbc).

Threat

Компоновка материалов: DeusModus


transports

Таблица `transports`

Таблица содержит данные о транспорте в игре.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
entry | int(11) | unsigned | NO | 0 |
name | text |  | YES |  |
period | int(11) | unsigned | NO | 0 |

Описание полей таблицы

entry

Идентификатор транспортного пути. Равен идентификатору ГО корабля (См. mangos.gameobject_template.entry)

name

Наименование транспортного пути.

period

Время прохождения пути.


uptime

Таблица `uptime`

Таблица содержит данные о времени работы сервера. Мангос автоматически добавляет/обновляет данные.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
starttime | bigint(11) | unsigned | NO | 0 |
startstring | varchar(64) |  | NO |  |
uptime | bigint(11) | unsigned | NO | 0 |
maxplayers | int(11) | unsigned | NO | 0 |

Описание полей таблицы

starttime

Время запуска сервера (UNIX timestamp).

startstring

Время запуска сервера (YYYY-MM-DD hh:mm:ss).

uptime

Время работы сервера в секундах. Всегда кратно (ну или почти кратно) времени сохранения.

maxplayers

Максимальное число игроков на сервере


account

Таблица `account`

Содержит записи о аккаунтах.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | bigint(20) | unsigned | NO |  | Identifier
username | varchar(32) |  | NO |  |
sha_pass_hash | varchar(40) |  | NO |  |
gmlevel | tinyint(3) | unsigned | NO | 0 |
sessionkey | longtext |  | YES |  |
v | longtext |  | YES |  |
s | longtext |  | YES |  |
email | text |  | YES |  |
joindate | timestamp |  | NO | CURRENT_TIMESTAMP |
last_ip | varchar(30) |  | NO | 127.0.0.1 |
failed_logins | int(11) | unsigned | NO | 0 |
locked | tinyint(3) | unsigned | NO | 0 |
last_login | timestamp |  | NO | 0000-00-0000:00:00 |
online | tinyint(4) |  | NO | 0 |
expansion | tinyint(3) | unsigned | NO | 0 |
mutetime | bigint(40) | unsigned | NO | 0 |
locale | tinyint(3) | unsigned | NO | 0 |

Описание полей таблицы

id

Уникальный идентификатор аккаунта.

username

Имя аккаунта.

sha_pass_hash

Хэш пароля аккаунта.

[SQL]
sha_pass_hash = SHA1(CONCAT(UPPER(`username`),':',UPPER(`password`)));

`username` - имя пользователя, `password` - пароль пользователя.

[PHP5]
<?php
$username = "user";
$password = "password";
$sha_pass_hash = SHA1(strtoupper($username.':'.$password));
?>

gmlevel

Уровень доступа к командам (См. mangos.command.security)
Если gmlevel >= mangos.command.security, то данный аккаунт может выполнить эту команду.

sessionkey

Ключ сессии.

v

Дополнительные сессионные данные.

s

Дополнительные сессионные данные.

email

E-mail аккаунта.

joindate

Дата создания аккаунта.

last_ip

Последний IP-адрес, с которого заходил аккаунт.

failed_logins

Число проваленных логинов. Если равно 6 (по умолчанию), то аккаунт автоматически блокируется (См. realmd.account.locked).

locked

Флаг: Заблокирован ли аккаунт?

0 - нет
1 - да

Флаг выставляется автоматически после неудачных попыток коннекта равных realmd.account.failed_logins.

last_login

Время последнего логина.

online

Флаг: Пользователь онлайн?

0 - нет
1 - да

expansion

Тип аккаунта. Может принимать значения:

0 - Clasic WoW
1 - TBC WoW
2 - WotLK WoW

mutetime

Время до которого 'заткнули' игрока. Автоматически заткнуть может за флуд в чате.

locale

Принимает значения в зависимости от клиента игрока

0 - English
1 - Korean
2 - French
3 - German
4 - Chinese
5 - Taiwanese
6 - Spanish
7 - Spanish Mexico
8 - Russian


account_banned

Таблица `account_banned`

Содержит идентификаторы забаненых аккаунтов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) |  | NO | 0 | Accountid
bandate | bigint(40) |  | NO | 0 |
unbandate | bigint(40) |  | NO | 0 |
bannedby | varchar(50) |  | NO |  |
banreason | varchar(255) |  | NO |  |
active | tinyint(4) |  | NO | 1 |

Описание полей таблицы

id

Идентификатор аккаунта (См. realmd.account.id).

bandate

Дата бана в UNIX-формате.

unbandate

Дата окончания бана в UNIX-формате.

bannedby

Кем забанен.

banreason

Причина бана.

active

Активен ли бан?

0 - нет
1 - да


ip_banned

Таблица `ip_banned`

Содержит IP-адреса забанненых пользователей.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
ip | varchar(32) |  | NO | 127.0.0.1 |
bandate | bigint(40) |  | NO |  |
unbandate | bigint(40) |  | NO |  |
bannedby | varchar(50) |  | NO | [Console] |
banreason | varchar(255) |  | NO | no reason |

Описание полей таблицы

ip

IP-адрес забаненного пользователя.

bandate

Дата бана в UNIX-формате.

unbandate

Дата окончания бана в UNIX-формате.

bannedby

Кем забанен.

banreason

Причина бана.


realmcharacters

Таблица `realmcharacters`

Содержит связь между аккаунтами и реалмами.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
realmid | int(11) | unsigned | NO | 0 |
acctid | bigint(20) | unsigned | NO | 0 |
numchars | tinyint(3) | unsigned | NO | 0 |

Описание полей таблицы

realmid

Идентификатор реалма (См. realmd.realmlist.id).

acctid

Номер аккаунта (См. realmd.account.id).

numchars

Число персонажей на аккаунте.


realmlist

Таблица `realmlist`

Содержит информацию о реалмах.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO |  |
name | varchar(32) |  | NO |  |
address | varchar(32) |  | NO | 127.0.0.1 |
port | int(11) |  | NO | 8085 |
icon | tinyint(3) | unsigned | NO | 0 |
color | tinyint(3) | unsigned | NO | 2 |
timezone | tinyint(3) | unsigned | NO | 0 |
allowedSecurityLevel | tinyint(3) | unsigned | NO | 0 |
population | float | unsigned | NO | 0 |

Описание полей таблицы

id

Идентификатор реалма.

name

Название реалма.

address

IP-адрес реалма.

port

Порт реалма.

icon

Тип реалма.

0 : Normal
1 : PVP
4 : Normal
6 : RP
8 : RPPVP

color

0 : Желтый (Yellow)
1 : Красный (Red)

Других цветов не предусмотрено, значение '11' - сделает реалму серое название и статус offline.

timezone

Временная зона.

0 : Dont Show
1 : Development
2 : United States
3 : Oceanic
4 : Latin America
5 : Tournament
6 : Korea
7 : Tournament
8 : English
9 : German
10 : French
11 : Spanish
12 : Russian
13 : Tournament
14 : Taiwan
15 : Tournament
16 : China
17 : CN1
18 : CN2
19 : CN3
20 : CN4
21 : CN5
22 : CN6
23 : CN7
24 : CN8
25 : Tournament
26 : Test Server
27 : Tournament
28 : QA Server
29 : CN9

allowedSecurityLevel

С каким GM уровнем будет пускать (будет виден) на рилм.

population

Это поле обновляется автоматически и зависит от количества играющих игроков и вычисляется по формуле: playerCount / maxPlayerCount * 2:

low: 0.5
meduim: 1.0
high: 2.0


realmd_db_version

Таблица `realmd_db_version`

Содержит запись о версии базы.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
версия_базы | bit(1) |  | Yes |  |


account_data

Таблица `account_data`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
account | int(11) | unsigned | NO | 0 |
type | int(11) | unsigned | NO | 0 |
time | bigint(11) | unsigned | NO | 0 |
data | longtext |  | NO | 0 |

Описание полей таблицы

account

ID аккаунта

type

!Нет описания!

time

!Нет описания!

data

!Нет описания!


arena_team

Таблица `arena_team`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
arenateamid | int(10) | unsigned | NO | 0 |
name | char(255) |  | NO |  |
captainguid | int(10) | unsigned | NO | 0 |
type | tinyint(3) | unsigned | NO | 0 |
EmblemStyle | int(10) | unsigned | NO | 0 |
EmblemColor | int(10) | unsigned | NO | 0 |
BorderStyle | int(10) | unsigned | NO | 0 |
BorderColor | int(10) | unsigned | NO | 0 |
BackgroundColor | int(10) | unsigned | NO | 0 |

Описание полей таблицы

arenateamid

Идентификатор команды.

name

Имя команды.

captainguid

Идентификатор капитана (См. characters.characters.guid).

type

Тип команды, для боев на аренах:

2 - 2х2
3 - 3х3
5 - 5х5

EmblemStyle

Стиль эмблемы.

EmblemColor

Цвет эмблемы.

BorderStyle

Стиль границы эмблемы.

BorderColor

Цвет границы эмблемы.

BackgroundColor

Цвет фона эмблемы.


arena_team_member

Таблица `arena_team_member`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
arenateamid | int(10) | unsigned | NO | 0 |
guid | int(10) | unsigned | NO | 0 |
played_week | int(10) | unsigned | NO | 0 |
wons_week | int(10) | unsigned | NO | 0 |
played_season | int(10) | unsigned | NO | 0 |
wons_season | int(10) | unsigned | NO | 0 |

Описание полей таблицы

arenateamid

Идентификатор команды (См. characters.arena_team.arenateamid).

guid

Идентификатор персонажа (См. characters.characters.guid).

played_week

!Нет описания!

wons_week

!Нет описания!

played_season

!Нет описания!

wons_season

!Нет описания!


arena_team_stats

Содержание

  • 1 Таблица `arena_team_stats`
  • 2 Описание полей таблицы
    • 2.1 arenateamid
    • 2.2 rating
    • 2.3 games
    • 2.4 wins
    • 2.5 played
    • 2.6 wins2
    • 2.7 rank

Таблица `arena_team_stats`

В данной таблице содержится статиска команд игроков Арены.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
arenateamid | int(10) | unsigned | NO | 0 |
rating | int(10) | unsigned | NO | 0 |
games | int(10) | unsigned | NO | 0 |
wins | int(10) | unsigned | NO | 0 |
played | int(10) | unsigned | NO | 0 |
wins2 | int(10) | unsigned | NO | 0 |
rank | int(10) | unsigned | NO | 0 |

Описание полей таблицы

arenateamid

Идентификатор команды (См. characters.arena_team.arenateamid).

rating

Рейтинг тимы

games

Количество сыграных игр.

wins

Кол-во побед.

played

Количество сыгранных игр в общем за весь сезон.

wins2

Количество побед в общем за весь сезон.

rank

Показывает на каком месте находится тима на сервере


auctionhouse

Содержание

  • 1 Таблица `auctionhouse`
  • 2 Описание полей таблицы
    • 2.1 id
    • 2.2 auctioneerguid
    • 2.3 itemguid
    • 2.4 item_template
    • 2.5 itemowner
    • 2.6 buyoutprice
    • 2.7 time
    • 2.8 buyguid
    • 2.9 lastbid
    • 2.10 startbid
    • 2.11 deposit
    • 2.12 location

Таблица `auctionhouse`

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

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
auctioneerguid | int(11) | unsigned | NO | 0 |
itemguid | int(11) | unsigned | NO | 0 |
item_template | int(11) | unsigned | NO | 0 | Item Identifier
itemowner | int(11) | unsigned | NO | 0 |
buyoutprice | int(11) |  | NO | 0 |
time | bigint(40) |  | NO | 0 |
buyguid | int(11) | unsigned | NO | 0 |
lastbid | int(11) |  | NO | 0 |
startbid | int(11) |  | NO | 0 |
deposit | int(11) |  | NO | 0 |
location | tinyint(3) | unsigned | NO | 3 |

Описание полей таблицы

id

Уникальный номер записи.

auctioneerguid

Идентификатор записи NPC аукционера (См. mangos.creature.guid).

itemguid

Идентификатор записи продаваемого предмета (См. characters.item_instance.guid).

item_template

Идентификатор записи шаблона продаваемого предмета (См. mangos.item_template.entry).

itemowner

Идентификатор записи персонажа владельца продаваемого предмета (См. characters.character.guid).

buyoutprice

Цена (Медью) за мгновенный выкуп продаваемого предмета.

time

Время окончания аукциона.

buyguid

Идентификатор записи персонажа, заплатившего наивысшую цену за продаваемый предмет (См. characters.character.guid).

lastbid

Наивысшая ставка (Медью) за продаваемый предмет.

startbid

Начальная ставка (Медью) за продаваемый предмет.

deposit

Цена (Медью), заплаченная за хранение предмета на аукционе.

location

Фракция, на аукционе которой был выставлен предмет. Может принимать следующие значения:

 2 - Альянс
 6 - Орда
 7 - Нейтральная


bugreport

Таблица `bugreport`

Содержит отчеты об ошибках, посланные через клиент игры.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) |  | NO |  | Identifier
type | varchar(255) |  | NO |  |
content | varchar(255) |  | NO |  |

Описание полей таблицы

id

Уникальный номер записи.

type

Текстовое описание типа ошибки.

content

Текстовое содержимое отчета об ошибках.


сharacters

Содержание

[убрать]
  • 1 Таблица `сharacters`
  • 2 Описание полей таблицы
    • 2.1 guid
    • 2.2 account
    • 2.3 data
    • 2.4 name
    • 2.5 race
    • 2.6 class
    • 2.7 position_x
    • 2.8 position_y
    • 2.9 position_z
    • 2.10 map
    • 2.11 orientation
    • 2.12 taximask
    • 2.13 online
    • 2.14 cinematic
    • 2.15 totaltime
    • 2.16 leveltime
    • 2.17 logout_time
    • 2.18 is_logout_resting
    • 2.19 rest_bonus
    • 2.20 resettalents_cost
    • 2.21 resettalents_time
    • 2.22 trans_x
    • 2.23 trans_y
    • 2.24 trans_z
    • 2.25 trans_o
    • 2.26 trans_guid
    • 2.27 gmstate
    • 2.28 stable_slots
    • 2.29 at_login
    • 2.30 zone
    • 2.31 pending_honor
    • 2.32 last_honor_date
    • 2.33 last_kill_date
    • 2.34 taxi_path

Таблица `сharacters`

Содержит информацию о имеющихся на сервере персонажах.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
account | int(11) | unsigned | NO | 0 | Account Identifier
data | longtext |  | YES |  |
name | varchar(12) |  | NO |  |
race | tinyint(3) | unsigned | NO | 0 |
class | tinyint(3) | unsigned | NO | 0 |
position_x | float |  | NO | 0 |
position_y | float |  | NO | 0 |
position_z | float |  | NO | 0 |
map | int(11) | unsigned | NO | 0 | Map Identifier
orientation | float |  | NO | 0 |
taximask | longtext |  | YES |  |
online | tinyint(3) | unsigned | NO | 0 |
cinematic | tinyint(3) | unsigned | NO | 0 |
totaltime | int(11) | unsigned | NO | 0 |
leveltime | int(11) | unsigned | NO | 0 |
logout_time | int(11) |  | NO | 0 |
is_logout_resting | tinyint(3) |  | NO | 0 |
rest_bonus | float |  | NO | 0 |
resettalents_cost | int(11) | unsigned | NO | 0 |
resettalents_time | bigint(20) | unsigned | NO | 0 |
trans_x | float |  | NO | 0 |
trans_y | float |  | NO | 0 |
trans_z | float |  | NO | 0 |
trans_o | float |  | NO | 0 |
transguid | bigint(20) | unsigned | NO | 0 |
gmstate | tinyint(3) | unsigned | NO | 0 |
stable_slots | tinyint(1) | unsigned | NO | 0 |
at_login | int(11) | unsigned | NO | 0 |
zone | int(11) | unsigned | NO | 0 |
pending_honor | float |  | NO | 0 |
last_honor_date | int(11) | unsigned | NO | 0 |
last_kill_date | int(11) | unsigned | NO | 0 |
taxi_path | text | unsigned | NO | 0 |

Описание полей таблицы

guid

Уникальный номер записи.

account

Номер записи аккаунта владельца персонажа (См. realmd.account.id).

data

Строка из чисел-флагов, определяющих основные характеристики персонажа.

name

Текстовое имя персонажа.

race

Раса персонажа.

class

Класс персонажа.

position_x

Координата X точки, в которой находится персонаж.

position_y

Координата Y точки, в которой находится персонаж.

position_z

Координата Z точки, в которой находится персонаж.

map

Номер карты, на которой расположен персонаж.

orientation

Угол в радианах, на который повёрнут персонаж, отнотсительно севера.

taximask

Строка из чисел-флагов, определяющих, какие пути такси доступны персонажу.

online

Флаг, определяющий, используется ли персонаж в данный момент. Может принимать следующие значения:

0 - Не используется
1 - Используется

cinematic

Флаг, определяющий, просмотрена ли персонажем заставка. Может принимать следующие значения -

0 - Не просмотрена
1 - Просмотрена

totaltime

Общее время (в секундах) нахождения персонажа на сервере.

leveltime

Время (в секундах) нахождения персонажа на сервере с момента получения им текущего уровня.

logout_time

Время (в секундах) отсутствия персонажа на сервере.

is_logout_resting

Флаг, определяющий, находился ли персонаж в зоне отдыха во время последнего выхода из игры.

0 - Не находится
1 - Находится

rest_bonus

Коэффицент, определяющий накопленный персонажем бонус к опыту от нахождения в зоне отдыха.

resettalents_cost

Цена медью за сброс всех талантов персонажа.

resettalents_time

Время последнего сброса талантов персонажа.

trans_x

Координата X внутри транспорта, если персонаж сейчас на нем находится.

trans_y

Координата Y внутри транспорта, если персонаж сейчас на нем находится.

trans_z

Координата Z внутри транспорта, если персонаж сейчас на нем находится.

trans_o

Угол в радианах, на который повёрнут персонаж, отнотсительно севера внутри транспорта, если он сейчас на нем находится.

trans_guid

Идентификатор ГО транспорта на котором находится персонаж (См. mangos.transports.entry, mangos.gameobject.guid).

gmstate

Флаг, определяющий, находится ли персонаж в данный момент в режиме GM.

0 - Не находится
1 - Находится

stable_slots

Количество открытых слотов для хранения петов.

at_login

Флаг, определяющий, что делать с персонажем при входе в игру.

0 - Ничего
1 - Заставить персонажа переименовать себя
2 - Сбросить магию
3 - Сбросить таланты

zone

Идентификатор зоны в которой находится персонаж на данный момент.

pending_honor

Текущий хонор, еще не записанный в общее число.

last_honor_date

Дата последнего начисления хонора.

last_kill_date

Дата последнего килла.

taxi_path

Какие пути такси открыты для персонажа. Подробнее пока неизвестно.


.data

Character.data

Все объекты в игре (ГО, НПЦ и игроки) имеют поля OBJECT_*, только НПЦ и игроки имеют поля UNIT_*, и только игроки имеют поля PLAYER_*. Строка из чисел-флагов, определяющих основные характеристики персонажа.
ВНИМАНИЕ! Как и все массивы, элементы этой строки начинаются с 0!

Версии

В разных версиях значения поля отличаются. Подробнее для каждой версии:

  • Для версии 2.3.0
  • Для версии 2.4.1.xxxx
  • Для версии 2.4.3.8606
  • Для версий 3.0.3.9183, 3.0.8.9464, 3.0.8a.9506

Английский аналог: http://wiki.udbforums.org/index.php/Character_data

Для помощи в поиске значений используйте файл UpdateFields.h из значений элемента EUnitFields. Данные хранятся в 16-тиричной кодировке. Для расшифровки номера массива Вы можете использовать следующую функцию:

<?php
$num=; // указываете число в hex, например $num = '0x0022';
echo hexdec($num); // преобразует число из шестнадцатиричной кодировки в десятичную.
//в нашем случае выведет 34
?>

Массовая правка значений `data` :

UPDATE `characters` SET `data`=CONCAT(CAST(SUBSTRING_INDEX(`data`, ' ', <index>) AS CHAR), ' ', <value>, ' ',
CAST(SUBSTRING_INDEX(`data`, ' ', -(<max_index> - <index>))AS CHAR));

<index> - номер поля
<value> - новое значение поля <index>
<max_index> - длина строки `data`


2.3.0

Character.data/2.3.0

Эта таблица для версии 2.3.0

Индекс | Название | Комменатрии
0 | OBJECT_FIELD_GUID | Номер персонажа (См. characters.character.guid)
2 | OBJECT_FIELD_TYPE
3 | OBJECT_FIELD_ENTRY
4 | OBJECT_FIELD_SCALE_X | Размер модели персонажа в игре (float)
5 | OBJECT_FIELD_PADDING
6 | UNIT_FIELD_CHARM
8 | UNIT_FIELD_SUMMON
10 | UNIT_FIELD_CHARMEDBY
12 | UNIT_FIELD_SUMMONEDBY
14 | UNIT_FIELD_CREATEDBY
16 UNIT_FIELD_TARGET если 17 = 4026535936 то guid выделеного моба.
если 17 = 0 guid выделеного чара.
18 | UNIT_FIELD_PERSUADED
20 | UNIT_FIELD_CHANNEL_OBJECT
22 | UNIT_FIELD_HEALTH | Актуальное кол-во жизней персонажа без бонусов.
23 | UNIT_FIELD_POWER1 | Актуальное кол-во маны персонажа без бонусов.
24 | UNIT_FIELD_POWER2 | Актуальное кол-во ярости у война без бонусов.
25 | UNIT_FIELD_POWER3 | Актуальное кол-во концентрации (focus) персонажа без бонусов.
26 | UNIT_FIELD_POWER4 | Актуальное кол-во энергии у роги без бонусов.
27 | UNIT_FIELD_POWER5 | Актуальное кол-во счастья (happiness) персонажа без бонусов.
28 | UNIT_FIELD_MAXHEALTH | Максимально возможное кол-во жизней без бонусов.
29 | UNIT_FIELD_MAXPOWER1 | Максимально возможное кол-во маны без бонусов.
30 | UNIT_FIELD_MAXPOWER2 | Максимально возможное кол-во ярости у война без бонусов.
31 | UNIT_FIELD_MAXPOWER3 | Максимально возможное кол-во концентрации (focus) без бонусов.
32 | UNIT_FIELD_MAXPOWER4 | Максимально возможное кол-во энергии у роги без бонусов.
33 | UNIT_FIELD_MAXPOWER5 | Максимально возможное кол-во счастья (happiness) без бонусов.
34 | UNIT_FIELD_LEVEL | Уровень персонажа
35 | UNIT_FIELD_FACTIONTEMPLATE | Идентификатор фракции используемый в данный момент FactionTemplate.dbc
36 UNIT_FIELD_BYTES_0 ( class_ << 8 ) | ( gender << 16 ) | ( powertype << 24 )

Пол персонажа + что-то еще. Информация о типе поля содержиться в бите соответствующем числу 65536. По некоторым источникам там хранится внешность персонажа(цет кожи, цвет волос...), но я не проверял.
[PHP]
$char_gender = dechex($data[36]);//переводится из десятичной в шестнадцатиричную.
$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);//слева дополняет нулями до 8 символов.
$char_gender = $char_gender{3};//берёт 3-й символ 0=>'муж.', 1=>'жен.'
[SQL]
пол -SUBSTRING(LPAD(HEX(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',37),' ',-1) AS UNSIGNED)),8,'0'),4,1)

37 | UNIT_VIRTUAL_ITEM_SLOT_DISPLAY
40 | UNIT_VIRTUAL_ITEM_INFO
46 | UNIT_FIELD_FLAGS
47 | UNIT_FIELD_FLAGS_2
48 | UNIT_FIELD_AURA | Ауры наложенные на игрока
104 | UNIT_FIELD_AURAFLAGS
118 | UNIT_FIELD_AURALEVELS
132 | UNIT_FIELD_AURAAPPLICATIONS
146 | UNIT_FIELD_AURASTATE
147 | UNIT_FIELD_BASEATTACKTIME
148 | UNIT_FIELD_OFFHANDATTACKTIME
149 | UNIT_FIELD_RANGEDATTACKTIME
150 | UNIT_FIELD_BOUNDINGRADIUS
151 | UNIT_FIELD_COMBATREACH
152 | UNIT_FIELD_DISPLAYID | Внешность, отображаемая в окне выбора персонажей. Current model ID (can be different from regular if character is morphed, etc)
153 | UNIT_FIELD_NATIVEDISPLAYID | Внешность, отображаемая в окне выбора персонажей. The native model ID. Model always reverts to this number when player is demorphed.
154 | UNIT_FIELD_MOUNTDISPLAYID
155 | UNIT_FIELD_MINDAMAGE
156 | UNIT_FIELD_MAXDAMAGE
157 | UNIT_FIELD_MINOFFHANDDAMAGE
158 | UNIT_FIELD_MAXOFFHANDDAMAGE
159 | UNIT_FIELD_BYTES_1
160 | UNIT_FIELD_PETNUMBER
161 | UNIT_FIELD_PET_NAME_TIMESTAMP
162 | UNIT_FIELD_PETEXPERIENCE
163 | UNIT_FIELD_PETNEXTLEVELEXP
164 | UNIT_DYNAMIC_FLAGS
165 | UNIT_CHANNEL_SPELL
166 | UNIT_MOD_CAST_SPEED
167 | UNIT_CREATED_BY_SPELL
168 | UNIT_NPC_FLAGS
169 | UNIT_NPC_EMOTESTATE
170 | UNIT_TRAINING_POINTS
171 | UNIT_FIELD_STAT0 | Базавая сила
172 | UNIT_FIELD_STAT1 | Базавая ловкость
173 | UNIT_FIELD_STAT2 | Базавая выносливость
174 | UNIT_FIELD_STAT3 | Базавый интелект
175 | UNIT_FIELD_STAT4 | Базавый дух
176 | UNIT_FIELD_POSSTAT0 | Бонус на силу
177 | UNIT_FIELD_POSSTAT1 | Бонус на ловкость
178 | UNIT_FIELD_POSSTAT2 | Бонус на выносливость
179 | UNIT_FIELD_POSSTAT3 | Бонус на интелект
180 | UNIT_FIELD_POSSTAT4 | Бонус на дух
181 | UNIT_FIELD_NEGSTAT0 | Антибонус на силу
182 | UNIT_FIELD_NEGSTAT1 | Антибонус на ловкость
183 | UNIT_FIELD_NEGSTAT2 | Антибонус на выносливость
184 | UNIT_FIELD_NEGSTAT3 | Антибонус на интелект
185 | UNIT_FIELD_NEGSTAT4 | Антибонус на дух
186 | UNIT_FIELD_RESISTANCES | Базовая броня
187 | Стойкость Holy без бонусов в том числе и расовых
188 | Стойкость Fire без бонусов в том числе и расовых
189 | Стойкость Nature без бонусов в том числе и расовых
190 | Стойкость Frost без бонусов в том числе и расовых
191 | Стойкость Shadow без бонусов в том числе и расовых
192 | Стойкость Arcane без бонусов в том числе и расовых
193 | UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE
200 | UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE
207 | UNIT_FIELD_BASE_MANA
208 | UNIT_FIELD_BASE_HEALTH
209 | UNIT_FIELD_BYTES_2
210 | UNIT_FIELD_ATTACK_POWER
211 | UNIT_FIELD_ATTACK_POWER_MODS
212 | UNIT_FIELD_ATTACK_POWER_MULTIPLIER
213 | UNIT_FIELD_RANGED_ATTACK_POWER
214 | UNIT_FIELD_RANGED_ATTACK_POWER_MODS
215 | UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER
216 | UNIT_FIELD_MINRANGEDDAMAGE
217 | UNIT_FIELD_MAXRANGEDDAMAGE
218 | UNIT_FIELD_POWER_COST_MODIFIER
225 | UNIT_FIELD_POWER_COST_MULTIPLIER
232 | PLAYER_DUEL_ARBITER
234 | PLAYER_FLAGS
235 | PLAYER_GUILDID | Id гильдии в которой состоит персонаж (См. characters.guild.guildid)
236 | PLAYER_GUILDRANK | Id ранга, который у персоонажа, если он состоит в гильдии (См. guild_rank.rid)
237 | PLAYER_BYTES | (face << 8) | (hairStyle << 16) | (hairColor << 24))
238 | PLAYER_BYTES_2 | (0x00 << 8) | (0x00 << 16) | (0x02 << 24)))
239 | PLAYER_BYTES_3 | Вроди, отвечает за голос. (gender)
240 | PLAYER_DUEL_TEAM
241 | PLAYER_GUILD_TIMESTAMP
242 | PLAYER_QUEST_LOG_1_1 | ID квеста
243 | PLAYER_QUEST_LOG_1_2 | Если в квесте надо убить n-ое кол-во мобов то в первом параметре хранится число уже убитых мобов, если достигнуто необходимое число bin(1000000000000000000000000)+n или же просто квест выполнен и осталось только здать его bin(1000000000000000000000000) первый бит становится единицей
245 | PLAYER_QUEST_LOG_2_1
246 | PLAYER_QUEST_LOG_2_2
248 | PLAYER_QUEST_LOG_3_1
249 | PLAYER_QUEST_LOG_3_2
251 | PLAYER_QUEST_LOG_4_1
252 | PLAYER_QUEST_LOG_4_2
254 | PLAYER_QUEST_LOG_5_1
255 | PLAYER_QUEST_LOG_5_2
257 | PLAYER_QUEST_LOG_6_1
258 | PLAYER_QUEST_LOG_6_2
260 | PLAYER_QUEST_LOG_7_1
261 | PLAYER_QUEST_LOG_7_2
263 | PLAYER_QUEST_LOG_8_1
264 | PLAYER_QUEST_LOG_8_2
266 | PLAYER_QUEST_LOG_9_1
267 | PLAYER_QUEST_LOG_9_2
269 | PLAYER_QUEST_LOG_10_1
270 | PLAYER_QUEST_LOG_10_2
272 | PLAYER_QUEST_LOG_11_1
273 | PLAYER_QUEST_LOG_11_2
275 | PLAYER_QUEST_LOG_12_1
276 | PLAYER_QUEST_LOG_12_2
278 | PLAYER_QUEST_LOG_13_1
279 | PLAYER_QUEST_LOG_13_2
281 | PLAYER_QUEST_LOG_14_1
282 | PLAYER_QUEST_LOG_14_2
284 | PLAYER_QUEST_LOG_15_1
285 | PLAYER_QUEST_LOG_15_2
287 | PLAYER_QUEST_LOG_16_1
288 | PLAYER_QUEST_LOG_16_2
290 | PLAYER_QUEST_LOG_17_1
291 | PLAYER_QUEST_LOG_17_2
293 | PLAYER_QUEST_LOG_18_1
294 | PLAYER_QUEST_LOG_18_2
296 | PLAYER_QUEST_LOG_19_1
297 | PLAYER_QUEST_LOG_19_2
299 | PLAYER_QUEST_LOG_20_1
300 | PLAYER_QUEST_LOG_20_2
302 | PLAYER_QUEST_LOG_21_1
303 | PLAYER_QUEST_LOG_21_2
305 | PLAYER_QUEST_LOG_22_1
306 | PLAYER_QUEST_LOG_22_2
308 | PLAYER_QUEST_LOG_23_1
309 | PLAYER_QUEST_LOG_23_2
311 | PLAYER_QUEST_LOG_24_1
312 | PLAYER_QUEST_LOG_24_2
314 | PLAYER_QUEST_LOG_25_1
315 | PLAYER_QUEST_LOG_25_2
317 | PLAYER_VISIBLE_ITEM_1_CREATOR
319 | PLAYER_VISIBLE_ITEM_1_0 | Вещь на голове (См. mangos.item_template.entry).
331 | PLAYER_VISIBLE_ITEM_1_PROPERTIES
332 | PLAYER_VISIBLE_ITEM_1_PAD
333 | PLAYER_VISIBLE_ITEM_2_CREATOR
335 | PLAYER_VISIBLE_ITEM_2_0 | Вещь на шее (См. mangos.item_template.entry).
347 | PLAYER_VISIBLE_ITEM_2_PROPERTIES
348 | PLAYER_VISIBLE_ITEM_2_PAD
349 | PLAYER_VISIBLE_ITEM_3_CREATOR
351 | PLAYER_VISIBLE_ITEM_3_0 | Вещь на плечах (См. mangos.item_template.entry).
363 | PLAYER_VISIBLE_ITEM_3_PROPERTIES
364 | PLAYER_VISIBLE_ITEM_3_PAD
365 | PLAYER_VISIBLE_ITEM_4_CREATOR
367 | PLAYER_VISIBLE_ITEM_4_0 | Рубашка (См. mangos.item_template.entry).
379 | PLAYER_VISIBLE_ITEM_4_PROPERTIES
380 | PLAYER_VISIBLE_ITEM_4_PAD
381 | PLAYER_VISIBLE_ITEM_5_CREATOR
383 | PLAYER_VISIBLE_ITEM_5_0 | Вущь на груди (См. mangos.item_template.entry).
395 | PLAYER_VISIBLE_ITEM_5_PROPERTIES
396 | PLAYER_VISIBLE_ITEM_5_PAD
397 | PLAYER_VISIBLE_ITEM_6_CREATOR
399 | PLAYER_VISIBLE_ITEM_6_0 | Вещь на поясе (См. mangos.item_template.entry).
411 | PLAYER_VISIBLE_ITEM_6_PROPERTIES
412 | PLAYER_VISIBLE_ITEM_6_PAD
413 | PLAYER_VISIBLE_ITEM_7_CREATOR
415 | PLAYER_VISIBLE_ITEM_7_0 | Штаны (См. mangos.item_template.entry).
427 | PLAYER_VISIBLE_ITEM_7_PROPERTIES
428 | PLAYER_VISIBLE_ITEM_7_PAD
429 | PLAYER_VISIBLE_ITEM_8_CREATOR
431 | PLAYER_VISIBLE_ITEM_8_0 | Сапоги (См. mangos.item_template.entry).
443 | PLAYER_VISIBLE_ITEM_8_PROPERTIES
444 | PLAYER_VISIBLE_ITEM_8_PAD
445 | PLAYER_VISIBLE_ITEM_9_CREATOR
447 | PLAYER_VISIBLE_ITEM_9_0 | Вещь на запястье (См. mangos.item_template.entry).
459 | PLAYER_VISIBLE_ITEM_9_PROPERTIES
460 | PLAYER_VISIBLE_ITEM_9_PAD
461 | PLAYER_VISIBLE_ITEM_10_CREATOR
463 | PLAYER_VISIBLE_ITEM_10_0 | Перчатки (См. mangos.item_template.entry).
475 | PLAYER_VISIBLE_ITEM_10_PROPERTIES
476 | PLAYER_VISIBLE_ITEM_10_PAD
477 | PLAYER_VISIBLE_ITEM_11_CREATOR
479 | PLAYER_VISIBLE_ITEM_11_0 | Кольцо 1 (См. mangos.item_template.entry).
491 | PLAYER_VISIBLE_ITEM_11_PROPERTIES
492 | PLAYER_VISIBLE_ITEM_11_PAD
493 | PLAYER_VISIBLE_ITEM_12_CREATOR
495 | PLAYER_VISIBLE_ITEM_12_0 | Кольцо 2 (См. mangos.item_template.entry).
507 | PLAYER_VISIBLE_ITEM_12_PROPERTIES
508 | PLAYER_VISIBLE_ITEM_12_PAD
509 | PLAYER_VISIBLE_ITEM_13_CREATOR
511 | PLAYER_VISIBLE_ITEM_13_0 | Серьга 1 (См. mangos.item_template.entry).
523 | PLAYER_VISIBLE_ITEM_13_PROPERTIES
524 | PLAYER_VISIBLE_ITEM_13_PAD
525 | PLAYER_VISIBLE_ITEM_14_CREATOR
527 | PLAYER_VISIBLE_ITEM_14_0 | Серьга 2 (См. mangos.item_template.entry).
539 | PLAYER_VISIBLE_ITEM_14_PROPERTIES
540 | PLAYER_VISIBLE_ITEM_14_PAD
541 | PLAYER_VISIBLE_ITEM_15_CREATOR
543 | PLAYER_VISIBLE_ITEM_15_0 | Плащ (См. mangos.item_template.entry).
555 | PLAYER_VISIBLE_ITEM_15_PROPERTIES
556 | PLAYER_VISIBLE_ITEM_15_PAD
557 | PLAYER_VISIBLE_ITEM_16_CREATOR
559 | PLAYER_VISIBLE_ITEM_16_0 | Вещь в главной руке (См. mangos.item_template.entry).
571 | PLAYER_VISIBLE_ITEM_16_PROPERTIES
572 | PLAYER_VISIBLE_ITEM_16_PAD
573 | PLAYER_VISIBLE_ITEM_17_CREATOR
575 | PLAYER_VISIBLE_ITEM_17_0 | Вещь во второй руке (См. mangos.item_template.entry).
587 | PLAYER_VISIBLE_ITEM_17_PROPERTIES
588 | PLAYER_VISIBLE_ITEM_17_PAD
589 | PLAYER_VISIBLE_ITEM_18_CREATOR
591 | PLAYER_VISIBLE_ITEM_18_0 | Вещь для дальнего боя (См. mangos.item_template.entry).
603 | PLAYER_VISIBLE_ITEM_18_PROPERTIES
604 | PLAYER_VISIBLE_ITEM_18_PAD
605 | PLAYER_VISIBLE_ITEM_19_CREATOR
607 | PLAYER_VISIBLE_ITEM_19_0 | Гильдийская накидка (См. mangos.item_template.entry).
619 | PLAYER_VISIBLE_ITEM_19_PROPERTIES
620 | PLAYER_VISIBLE_ITEM_19_PAD
621 | PLAYER_CHOSEN_TITLE
622 | PLAYER_FIELD_INV_SLOT_HEAD
668 | PLAYER_FIELD_PACK_SLOT_1
700 | PLAYER_FIELD_BANK_SLOT_1
756 | PLAYER_FIELD_BANKBAG_SLOT_1
770 | PLAYER_FIELD_VENDORBUYBACK_SLOT_1
794 | PLAYER_FIELD_KEYRING_SLOT_1
858 | PLAYER_FARSIGHT
860 | PLAYER__FIELD_KNOWN_TITLES
862 | PLAYER_XP | Актуальное кол-во опыта.
863 | PLAYER_NEXT_LEVEL_XP | Необходимое количество опыта для получения следующего уровня.
864 PLAYER_SKILL_INFO_1_1 Информация о скилах и его навыках.
Формат: id_skill value 0, где:
-id_skill берется из SharedDefines.h, если професия вносятся id_skill+65536 (некоторые чистым id из SharedDefines.h)

-value Навык = (макс_значение * 65536) + текущее_значение.

-0 Разделитель.
1248 | PLAYER_CHARACTER_POINTS1 | Кол-во свободных очков талантов.
1249 | PLAYER_CHARACTER_POINTS2 | Кол-во не свободных очков талантов.
1250 | PLAYER_TRACK_CREATURES
1251 | PLAYER_TRACK_RESOURCES
1252 | PLAYER_BLOCK_PERCENTAGE | Вероятность в % блока атаки (block).
1253 | PLAYER_DODGE_PERCENTAGE | Вероятность в % уворота от атаки (dodge).
1254 | PLAYER_PARRY_PERCENTAGE | Вероятность в % отражать атаку (parry).
1255 | PLAYER_EXPERTISE
1256 | PLAYER_CRIT_PERCENTAGE | Вероятность в % нанести критический удар в ближнем бою.
1257 | PLAYER_RANGED_CRIT_PERCENTAGE | Вероятность в % нанести критический в дальнем бою.
1258 | PLAYER_OFFHAND_CRIT_PERCENTAGE | Вероятность в % нанести критический удар второй рукой.
1259 | PLAYER_SPELL_CRIT_PERCENTAGE1 | Вероятность в % нанести критический удар магией.
1260 | PLAYER_HOLY_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Holy магией.
1261 | PLAYER_FIRE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Fire магией.
1262 | PLAYER_NATURE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Nature магией.
1263 | PLAYER_FROST_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Frost магией.
1264 | PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Shadow магией.
1265 | PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Arcane магией.
1266 | PLAYER_SHIELD_BLOCK | Вероятность в % блокировать удар щитом.
1267 | PLAYER_EXPLORED_ZONES_1 | Исследованые зоны.
1331 | PLAYER_REST_STATE_EXPERIENCE
1332 | PLAYER_FIELD_COINAGE | Хранит кол-во денег в формате GGSSCC, например, 1g 3s 50c = 10350
1333 | PLAYER_FIELD_MOD_DAMAGE_DONE_POS
1340 | PLAYER_FIELD_MOD_DAMAGE_DONE_NEG
1347 | PLAYER_FIELD_MOD_DAMAGE_DONE_PCT
1354 | PLAYER_FIELD_MOD_HEALING_DONE_POS
1355 | PLAYER_FIELD_MOD_TARGET_RESISTANCE
1356 | PLAYER_FIELD_BYTES
1357 | PLAYER_AMMO_ID
1358 | PLAYER_SELF_RES_SPELL
1359 | PLAYER_FIELD_PVP_MEDALS
1360 | PLAYER_FIELD_BUYBACK_PRICE_1
1372 | PLAYER_FIELD_BUYBACK_TIMESTAMP_1
1384 | PLAYER_FIELD_KILLS
1385 | PLAYER_FIELD_TODAY_CONTRIBUTION
1386 | PLAYER_FIELD_YESTERDAY_CONTRIBUTION
1387 | PLAYER_FIELD_LIFETIME_HONORBALE_KILLS | Общее кол-во хонор убийств.
1388 | PLAYER_FIELD_BYTES2
1389 | PLAYER_FIELD_WATCHED_FACTION_INDEX
1390 | PLAYER_FIELD_COMBAT_RATING_1
1390 | PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING
1391 | PLAYER_FIELD_DEFENCE_RATING
1392 | PLAYER_FIELD_DODGE_RATING
1393 | PLAYER_FIELD_PARRY_RATING
1394 | PLAYER_FIELD_BLOCK_RATING
1395 | PLAYER_FIELD_MELEE_HIT_RATING
1396 | PLAYER_FIELD_RANGED_HIT_RATING
1397 | PLAYER_FIELD_SPELL_HIT_RATING
1398 | PLAYER_FIELD_MELEE_CRIT_RATING
1399 | PLAYER_FIELD_RANGED_CRIT_RATING
1400 | PLAYER_FIELD_SPELL_CRIT_RATING
1401 | PLAYER_FIELD_HIT_RATING
1402 | PLAYER_FIELD_CRIT_RATING
1403 | PLAYER_FIELD_UNK3_RATING
1404 | PLAYER_FIELD_UNK4_RATING
1405 | PLAYER_FIELD_UNK5_RATING
1406 | PLAYER_FIELD_RESILIENCE_RATING
1407 | PLAYER_FIELD_MELEE_HASTE_RATING
1408 | PLAYER_FIELD_RANGED_HASTE_RATING
1409 | PLAYER_FIELD_SPELL_HASTE_RATING
1410 | PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING
1411 | PLAYER_FIELD_OFFHAND_WEAPON_SKILL_RATING
1412 | PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING
1413 | PLAYER_FIELD_EXPERTISE_RATING
1414 | PLAYER_FIELD_ARENA_TEAM_INFO_1_1
1414 | PLAYER_FIELD_ARENA_TEAM_ID_2v2
1420 | PLAYER_FIELD_ARENA_TEAM_ID_3v3
1432 | PLAYER_FIELD_ARENA_TEAM_ID_5v5
1432 | PLAYER_FIELD_HONOR_CURRENCY | Кол-во хонор очков.
1433 | PLAYER_FIELD_ARENA_CURRENCY | Кол-во арена-очков.
1434 | PLAYER_FIELD_MOD_MANA_REGEN
1435 | PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT
1436 | PLAYER_FIELD_MAX_LEVEL | Максимальный уровень, до корого можно развиться.
1437 | PLAYER_FIELD_DAILY_QUESTS_1
1447 | PLAYER_FIELD_PADDING
1448 | PLAYER_END

Для помощи в поиске значений используйте файл UpdateFields.h из значений элемента EUnitFields. Данные хранятся в 16-тиричной кодировке. Для расшифровки номера массива Вы можете использовать следующую функцию:

<?php
$num=; // указываете число в hex, например $num = '0x0022';
echo hexdec($num); // преобразует число из шестнадцатиричной кодировки в десятичную.
//в нашем случае выведет 34
?>


2.4.1.xxxx

Character.data/2.4.1.xxxx

Эта таблица для версии 2.4.1

Индекс | Название | Комментарии
0 | OBJECT_FIELD_GUID | Номер персонажа (См. characters.character.guid)
2 | OBJECT_FIELD_TYPE
3 | OBJECT_FIELD_ENTRY
4 | OBJECT_FIELD_SCALE_X | Размер модели персонажа в игре (float)
5 | OBJECT_FIELD_PADDING
6 | UNIT_FIELD_CHARM
8 | UNIT_FIELD_SUMMON
10 | UNIT_FIELD_CHARMEDBY
12 | UNIT_FIELD_SUMMONEDBY
14 | UNIT_FIELD_CREATEDBY
16 UNIT_FIELD_TARGET если 17 = 4026535936 то guid выделеного моба.
если 17 = 0 guid выделеного чара.
18 | UNIT_FIELD_PERSUADED
20 | UNIT_FIELD_CHANNEL_OBJECT
22 | UNIT_FIELD_HEALTH | Актуальное кол-во жизней персонажа без бонусов.
23 | UNIT_FIELD_POWER1 | Актуальное кол-во маны персонажа без бонусов.
24 | UNIT_FIELD_POWER2 | Актуальное кол-во ярости у война без бонусов.
25 | UNIT_FIELD_POWER3 | Актуальное кол-во концентрации (focus) персонажа без бонусов.
26 | UNIT_FIELD_POWER4 | Актуальное кол-во энергии у роги без бонусов.
27 | UNIT_FIELD_POWER5 | Актуальное кол-во счастья (happiness) персонажа без бонусов.
28 | UNIT_FIELD_MAXHEALTH | Максимально возможное кол-во жизней без бонусов.
29 | UNIT_FIELD_MAXPOWER1 | Максимально возможное кол-во маны без бонусов.
30 | UNIT_FIELD_MAXPOWER2 | Максимально возможное кол-во ярости у война без бонусов.
31 | UNIT_FIELD_MAXPOWER3 | Максимально возможное кол-во концентрации (focus) без бонусов.
32 | UNIT_FIELD_MAXPOWER4 | Максимально возможное кол-во энергии у роги без бонусов.
33 | UNIT_FIELD_MAXPOWER5 | Максимально возможное кол-во счастья (happiness) без бонусов.
34 | UNIT_FIELD_LEVEL | Уровень персонажа
35 | UNIT_FIELD_FACTIONTEMPLATE | Идентификатор фракции используемый в данный момент FactionTemplate.dbc
36 UNIT_FIELD_BYTES_0 ( class_ << 8 ) | ( gender << 16 ) | ( powertype << 24 )

Пол персонажа + что-то еще. Информация о типе поля содержиться в бите соответствующем числу 65536. По некоторым источникам там хранится внешность персонажа(цет кожи, цвет волос...), но я не проверял.
[PHP]
$char_gender = dechex($data[36]);//переводится из десятичной в шестнадцатиричную.
$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);//слева дополняет нулями до 8 символов.
$char_gender = $char_gender{3};//берёт 3-й символ 0=>'муж.', 1=>'жен.'
[SQL]
пол -SUBSTRING(LPAD(HEX(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',37),' ',-1) AS UNSIGNED)),8,'0'),4,1)

37 | UNIT_VIRTUAL_ITEM_SLOT_DISPLAY
40 | UNIT_VIRTUAL_ITEM_INFO
46 | UNIT_FIELD_FLAGS
47 | UNIT_FIELD_FLAGS_2
48 | UNIT_FIELD_AURA | Ауры наложенные на игрока
104 | UNIT_FIELD_AURAFLAGS
118 | UNIT_FIELD_AURALEVELS
132 | UNIT_FIELD_AURAAPPLICATIONS
146 | UNIT_FIELD_AURASTATE
147 | UNIT_FIELD_BASEATTACKTIME
148 | UNIT_FIELD_OFFHANDATTACKTIME
149 | UNIT_FIELD_RANGEDATTACKTIME
150 | UNIT_FIELD_BOUNDINGRADIUS
151 | UNIT_FIELD_COMBATREACH
152 | UNIT_FIELD_DISPLAYID | Внешность, отображаемая в окне выбора персонажей. Current model ID (can be different from regular if character is morphed, etc)
153 | UNIT_FIELD_NATIVEDISPLAYID | Внешность, отображаемая в окне выбора персонажей. The native model ID. Model always reverts to this number when player is demorphed.
154 | UNIT_FIELD_MOUNTDISPLAYID
155 | UNIT_FIELD_MINDAMAGE
156 | UNIT_FIELD_MAXDAMAGE
157 | UNIT_FIELD_MINOFFHANDDAMAGE
158 | UNIT_FIELD_MAXOFFHANDDAMAGE
159 | UNIT_FIELD_BYTES_1
160 | UNIT_FIELD_PETNUMBER
161 | UNIT_FIELD_PET_NAME_TIMESTAMP
162 | UNIT_FIELD_PETEXPERIENCE
163 | UNIT_FIELD_PETNEXTLEVELEXP
164 | UNIT_DYNAMIC_FLAGS
165 | UNIT_CHANNEL_SPELL
166 | UNIT_MOD_CAST_SPEED
167 | UNIT_CREATED_BY_SPELL
168 | UNIT_NPC_FLAGS
169 | UNIT_NPC_EMOTESTATE
170 | UNIT_TRAINING_POINTS
171 | UNIT_FIELD_STAT0 | Базавая сила
172 | UNIT_FIELD_STAT1 | Базавая ловкость
173 | UNIT_FIELD_STAT2 | Базавая выносливость
174 | UNIT_FIELD_STAT3 | Базавый интелект
175 | UNIT_FIELD_STAT4 | Базавый дух
176 | UNIT_FIELD_POSSTAT0 | Бонус на силу
177 | UNIT_FIELD_POSSTAT1 | Бонус на ловкость
178 | UNIT_FIELD_POSSTAT2 | Бонус на выносливость
179 | UNIT_FIELD_POSSTAT3 | Бонус на интелект
180 | UNIT_FIELD_POSSTAT4 | Бонус на дух
181 | UNIT_FIELD_NEGSTAT0 | Антибонус на силу
182 | UNIT_FIELD_NEGSTAT1 | Антибонус на ловкость
183 | UNIT_FIELD_NEGSTAT2 | Антибонус на выносливость
184 | UNIT_FIELD_NEGSTAT3 | Антибонус на интелект
185 | UNIT_FIELD_NEGSTAT4 | Антибонус на дух
186 | UNIT_FIELD_RESISTANCES | Базовая броня
187 | Стойкость Holy без бонусов в том числе и расовых
188 | Стойкость Fire без бонусов в том числе и расовых
189 | Стойкость Nature без бонусов в том числе и расовых
190 | Стойкость Frost без бонусов в том числе и расовых
191 | Стойкость Shadow без бонусов в том числе и расовых
192 | Стойкость Arcane без бонусов в том числе и расовых
193 | UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE
200 | UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE
207 | UNIT_FIELD_BASE_MANA
208 | UNIT_FIELD_BASE_HEALTH
209 | UNIT_FIELD_BYTES_2
210 | UNIT_FIELD_ATTACK_POWER
211 | UNIT_FIELD_ATTACK_POWER_MODS
212 | UNIT_FIELD_ATTACK_POWER_MULTIPLIER
213 | UNIT_FIELD_RANGED_ATTACK_POWER
214 | UNIT_FIELD_RANGED_ATTACK_POWER_MODS
215 | UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER
216 | UNIT_FIELD_MINRANGEDDAMAGE
217 | UNIT_FIELD_MAXRANGEDDAMAGE
218 | UNIT_FIELD_POWER_COST_MODIFIER
225 | UNIT_FIELD_POWER_COST_MULTIPLIER
232 | UNIT_FIELD_MAXHEALTHMODIFIER
233 | UNIT_FIELD_PADDING
234 | PLAYER_DUEL_ARBITER
236 | PLAYER_FLAGS
237 | PLAYER_GUILDID | Id гильдии в которой состоит персонаж (См. characters.guild.guildid)
238 | PLAYER_GUILDRANK | Id ранга, который у персоонажа, если он состоит в гильдии (См. guild_rank.rid)
239 | PLAYER_BYTES | (face << 8) | (hairStyle << 16) | (hairColor << 24))
240 | PLAYER_BYTES_2 | (0x00 << 8) | (0x00 << 16) | (0x02 << 24)))
241 | PLAYER_BYTES_3 | Вроди, отвечает за голос. (gender)
242 | PLAYER_DUEL_TEAM
243 | PLAYER_GUILD_TIMESTAMP
244 | PLAYER_QUEST_LOG_1_1 | ID квеста
245 | PLAYER_QUEST_LOG_1_2 | Если в квесте надо убить n-ое кол-во мобов то в первом параметре хранится число уже убитых мобов, если достигнуто необходимое число bin(1000000000000000000000000)+n или же просто квест выполнен и осталось только здать его bin(1000000000000000000000000) первый бит становится единицей
246 | PLAYER_QUEST_LOG_1_3
247 | PLAYER_QUEST_LOG_1_4
248 | PLAYER_QUEST_LOG_2_1
249 | PLAYER_QUEST_LOG_2_2
250 | PLAYER_QUEST_LOG_2_3
251 | PLAYER_QUEST_LOG_2_4
252 | PLAYER_QUEST_LOG_3_1
253 | PLAYER_QUEST_LOG_3_2
254 | PLAYER_QUEST_LOG_3_3
255 | PLAYER_QUEST_LOG_3_4
256 | PLAYER_QUEST_LOG_4_1
257 | PLAYER_QUEST_LOG_4_2
258 | PLAYER_QUEST_LOG_4_3
259 | PLAYER_QUEST_LOG_4_4
260 | PLAYER_QUEST_LOG_5_1
261 | PLAYER_QUEST_LOG_5_2
262 | PLAYER_QUEST_LOG_5_3
263 | PLAYER_QUEST_LOG_5_4
264 | PLAYER_QUEST_LOG_6_1
265 | PLAYER_QUEST_LOG_6_2
266 | PLAYER_QUEST_LOG_6_3
267 | PLAYER_QUEST_LOG_6_4
268 | PLAYER_QUEST_LOG_7_1
269 | PLAYER_QUEST_LOG_7_2
270 | PLAYER_QUEST_LOG_7_3
271 | PLAYER_QUEST_LOG_7_4
272 | PLAYER_QUEST_LOG_8_1
273 | PLAYER_QUEST_LOG_8_2
274 | PLAYER_QUEST_LOG_8_3
275 | PLAYER_QUEST_LOG_8_4
276 | PLAYER_QUEST_LOG_9_1
277 | PLAYER_QUEST_LOG_9_2
278 | PLAYER_QUEST_LOG_9_3
279 | PLAYER_QUEST_LOG_9_4
280 | PLAYER_QUEST_LOG_10_1
281 | PLAYER_QUEST_LOG_10_2
282 | PLAYER_QUEST_LOG_10_3
283 | PLAYER_QUEST_LOG_10_4
284 | PLAYER_QUEST_LOG_11_1
285 | PLAYER_QUEST_LOG_11_2
286 | PLAYER_QUEST_LOG_11_3
287 | PLAYER_QUEST_LOG_11_4
288 | PLAYER_QUEST_LOG_12_1
289 | PLAYER_QUEST_LOG_12_2
290 | PLAYER_QUEST_LOG_12_3
291 | PLAYER_QUEST_LOG_12_4
292 | PLAYER_QUEST_LOG_13_1
293 | PLAYER_QUEST_LOG_13_2
294 | PLAYER_QUEST_LOG_13_3
295 | PLAYER_QUEST_LOG_13_4
296 | PLAYER_QUEST_LOG_14_1
297 | PLAYER_QUEST_LOG_14_2
298 | PLAYER_QUEST_LOG_14_3
299 | PLAYER_QUEST_LOG_14_4
300 | PLAYER_QUEST_LOG_15_1
301 | PLAYER_QUEST_LOG_15_2
302 | PLAYER_QUEST_LOG_15_3
303 | PLAYER_QUEST_LOG_15_4
304 | PLAYER_QUEST_LOG_16_1
305 | PLAYER_QUEST_LOG_16_2
306 | PLAYER_QUEST_LOG_16_3
307 | PLAYER_QUEST_LOG_16_4
308 | PLAYER_QUEST_LOG_17_1
309 | PLAYER_QUEST_LOG_17_2
310 | PLAYER_QUEST_LOG_17_3
311 | PLAYER_QUEST_LOG_17_4
312 | PLAYER_QUEST_LOG_18_1
313 | PLAYER_QUEST_LOG_18_2
314 | PLAYER_QUEST_LOG_18_3
315 | PLAYER_QUEST_LOG_18_4
316 | PLAYER_QUEST_LOG_19_1
317 | PLAYER_QUEST_LOG_19_2
318 | PLAYER_QUEST_LOG_19_3
319 | PLAYER_QUEST_LOG_19_4
320 | PLAYER_QUEST_LOG_20_1
321 | PLAYER_QUEST_LOG_20_2
322 | PLAYER_QUEST_LOG_20_3
323 | PLAYER_QUEST_LOG_20_4
324 | PLAYER_QUEST_LOG_21_1
325 | PLAYER_QUEST_LOG_21_2
326 | PLAYER_QUEST_LOG_21_3
327 | PLAYER_QUEST_LOG_21_4
328 | PLAYER_QUEST_LOG_22_1
329 | PLAYER_QUEST_LOG_22_2
330 | PLAYER_QUEST_LOG_22_3
331 | PLAYER_QUEST_LOG_22_4
332 | PLAYER_QUEST_LOG_23_1
333 | PLAYER_QUEST_LOG_23_2
334 | PLAYER_QUEST_LOG_23_3
335 | PLAYER_QUEST_LOG_23_4
336 | PLAYER_QUEST_LOG_24_1
337 | PLAYER_QUEST_LOG_24_2
338 | PLAYER_QUEST_LOG_24_3
339 | PLAYER_QUEST_LOG_24_4
340 | PLAYER_QUEST_LOG_25_1
341 | PLAYER_QUEST_LOG_25_2
342 | PLAYER_QUEST_LOG_25_3
343 | PLAYER_QUEST_LOG_25_4
344 | PLAYER_VISIBLE_ITEM_1_CREATOR
346 | PLAYER_VISIBLE_ITEM_1_0 | Вещь на голове (См. mangos.item_template.entry).
358 | PLAYER_VISIBLE_ITEM_1_PROPERTIES
359 | PLAYER_VISIBLE_ITEM_1_PAD
360 | PLAYER_VISIBLE_ITEM_2_CREATOR
362 | PLAYER_VISIBLE_ITEM_2_0 | Вещь на шее (См. mangos.item_template.entry).
374 | PLAYER_VISIBLE_ITEM_2_PROPERTIES
375 | PLAYER_VISIBLE_ITEM_2_PAD
376 | PLAYER_VISIBLE_ITEM_3_CREATOR
378 | PLAYER_VISIBLE_ITEM_3_0 | Вещь на плечах (См. mangos.item_template.entry).
390 | PLAYER_VISIBLE_ITEM_3_PROPERTIES
391 | PLAYER_VISIBLE_ITEM_3_PAD
392 | PLAYER_VISIBLE_ITEM_4_CREATOR
394 | PLAYER_VISIBLE_ITEM_4_0 | Рубашка (См. mangos.item_template.entry).
406 | PLAYER_VISIBLE_ITEM_4_PROPERTIES
407 | PLAYER_VISIBLE_ITEM_4_PAD
408 | PLAYER_VISIBLE_ITEM_5_CREATOR
410 | PLAYER_VISIBLE_ITEM_5_0 | Вещь на груди (См. mangos.item_template.entry).
422 | PLAYER_VISIBLE_ITEM_5_PROPERTIES
423 | PLAYER_VISIBLE_ITEM_5_PAD
424 | PLAYER_VISIBLE_ITEM_6_CREATOR
426 | PLAYER_VISIBLE_ITEM_6_0 | Вещь на поясе (См. mangos.item_template.entry).
438 | PLAYER_VISIBLE_ITEM_6_PROPERTIES
439 | PLAYER_VISIBLE_ITEM_6_PAD
440 | PLAYER_VISIBLE_ITEM_7_CREATOR
442 | PLAYER_VISIBLE_ITEM_7_0 | Штаны (См. mangos.item_template.entry).
454 | PLAYER_VISIBLE_ITEM_7_PROPERTIES
455 | PLAYER_VISIBLE_ITEM_7_PAD
456 | PLAYER_VISIBLE_ITEM_8_CREATOR
458 | PLAYER_VISIBLE_ITEM_8_0 | Сапоги (См. mangos.item_template.entry).
470 | PLAYER_VISIBLE_ITEM_8_PROPERTIES
471 | PLAYER_VISIBLE_ITEM_8_PAD
472 | PLAYER_VISIBLE_ITEM_9_CREATOR
474 | PLAYER_VISIBLE_ITEM_9_0 | Вещь на запястье (См. mangos.item_template.entry).
486 | PLAYER_VISIBLE_ITEM_9_PROPERTIES
487 | PLAYER_VISIBLE_ITEM_9_PAD
488 | PLAYER_VISIBLE_ITEM_10_CREATOR
490 | PLAYER_VISIBLE_ITEM_10_0 | Перчатки (См. mangos.item_template.entry).
502 | PLAYER_VISIBLE_ITEM_10_PROPERTIES
503 | PLAYER_VISIBLE_ITEM_10_PAD
504 | PLAYER_VISIBLE_ITEM_11_CREATOR
506 | PLAYER_VISIBLE_ITEM_11_0 | Кольцо 1 (См. mangos.item_template.entry).
518 | PLAYER_VISIBLE_ITEM_11_PROPERTIES
519 | PLAYER_VISIBLE_ITEM_11_PAD
520 | PLAYER_VISIBLE_ITEM_12_CREATOR
522 | PLAYER_VISIBLE_ITEM_12_0 | Кольцо 2 (См. mangos.item_template.entry).
534 | PLAYER_VISIBLE_ITEM_12_PROPERTIES
535 | PLAYER_VISIBLE_ITEM_12_PAD
536 | PLAYER_VISIBLE_ITEM_13_CREATOR
538 | PLAYER_VISIBLE_ITEM_13_0 | Серьга 1 (См. mangos.item_template.entry).
550 | PLAYER_VISIBLE_ITEM_13_PROPERTIES
551 | PLAYER_VISIBLE_ITEM_13_PAD
552 | PLAYER_VISIBLE_ITEM_14_CREATOR
554 | PLAYER_VISIBLE_ITEM_14_0 | Серьга 2 (См. mangos.item_template.entry).
566 | PLAYER_VISIBLE_ITEM_14_PROPERTIES
567 | PLAYER_VISIBLE_ITEM_14_PAD
568 | PLAYER_VISIBLE_ITEM_15_CREATOR
570 | PLAYER_VISIBLE_ITEM_15_0 | Плащ (См. mangos.item_template.entry).
582 | PLAYER_VISIBLE_ITEM_15_PROPERTIES
583 | PLAYER_VISIBLE_ITEM_15_PAD
584 | PLAYER_VISIBLE_ITEM_16_CREATOR
586 | PLAYER_VISIBLE_ITEM_16_0 | Вещь в главной руке (См. mangos.item_template.entry).
598 | PLAYER_VISIBLE_ITEM_16_PROPERTIES
599 | PLAYER_VISIBLE_ITEM_16_PAD
600 | PLAYER_VISIBLE_ITEM_17_CREATOR
602 | PLAYER_VISIBLE_ITEM_17_0 | Вещь во второй руке (См. mangos.item_template.entry).
614 | PLAYER_VISIBLE_ITEM_17_PROPERTIES
615 | PLAYER_VISIBLE_ITEM_17_PAD
616 | PLAYER_VISIBLE_ITEM_18_CREATOR
618 | PLAYER_VISIBLE_ITEM_18_0 | Вещь для дальнего боя (См. mangos.item_template.entry).
630 | PLAYER_VISIBLE_ITEM_18_PROPERTIES
631 | PLAYER_VISIBLE_ITEM_18_PAD
632 | PLAYER_VISIBLE_ITEM_19_CREATOR
634 | PLAYER_VISIBLE_ITEM_19_0 | Гильдийская накидка (См. mangos.item_template.entry).
646 | PLAYER_VISIBLE_ITEM_19_PROPERTIES
647 | PLAYER_VISIBLE_ITEM_19_PAD
648 | PLAYER_CHOSEN_TITLE
649 | PLAYER_FIELD_PAD_0
650 | PLAYER_FIELD_INV_SLOT_HEAD
696 | PLAYER_FIELD_PACK_SLOT_1
728 | PLAYER_FIELD_BANK_SLOT_1
784 | PLAYER_FIELD_BANKBAG_SLOT_1
798 | PLAYER_FIELD_VENDORBUYBACK_SLOT_1
822 | PLAYER_FIELD_KEYRING_SLOT_1
886 | PLAYER_FIELD_VANITYPET_SLOT_1
922 | PLAYER_FARSIGHT
924 | PLAYER__FIELD_KNOWN_TITLES
926 | PLAYER_XP | Актуальное кол-во опыта.
927 | PLAYER_NEXT_LEVEL_XP | Необходимое количество опыта для получения следующего уровня.
928 PLAYER_SKILL_INFO_1_1 Информация о скилах и его навыках.
Формат: id_skill value 0, где:
-id_skill берется из SharedDefines.h, если професия вносятся id_skill+65536 (некоторые чистым id из SharedDefines.h)

-value Навык = (макс_значение * 65536) + текущее_значение.

-0 Разделитель.
1312 | PLAYER_CHARACTER_POINTS1 | Кол-во свободных очков талантов.
1313 | PLAYER_CHARACTER_POINTS2 | Кол-во не свободных очков талантов.
1314 | PLAYER_TRACK_CREATURES
1315 | PLAYER_TRACK_RESOURCES
1316 | PLAYER_BLOCK_PERCENTAGE | Вероятность в % блока атаки (block).
1317 | PLAYER_DODGE_PERCENTAGE | Вероятность в % уворота от атаки (dodge).
1318 | PLAYER_PARRY_PERCENTAGE | Вероятность в % отражать атаку (parry).
1319 | PLAYER_EXPERTISE
1320 | PLAYER_OFFHAND_EXPERTISE
1321 | PLAYER_CRIT_PERCENTAGE | Вероятность в % нанести критический удар в ближнем бою.
1322 | PLAYER_RANGED_CRIT_PERCENTAGE | Вероятность в % нанести критический в дальнем бою.
1323 | PLAYER_OFFHAND_CRIT_PERCENTAGE | Вероятность в % нанести критический удар второй рукой.
1324 | PLAYER_SPELL_CRIT_PERCENTAGE1 | Вероятность в % нанести критический удар магией.
1325 | PLAYER_HOLY_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Holy магией.
1326 | PLAYER_FIRE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Fire магией.
1327 | PLAYER_NATURE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Nature магией.
1328 | PLAYER_FROST_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Frost магией.
1329 | PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Shadow магией.
1330 | PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Arcane магией.
1331 | PLAYER_SHIELD_BLOCK | Вероятность в % блокировать удар щитом.
1332 | PLAYER_EXPLORED_ZONES_1 | Исследованые зоны.
1396 | PLAYER_REST_STATE_EXPERIENCE
1397 | PLAYER_FIELD_COINAGE | Хранит кол-во денег в формате GGSSCC, например, 1g 3s 50c = 10350
1398 | PLAYER_FIELD_MOD_DAMAGE_DONE_POS
1405 | PLAYER_FIELD_MOD_DAMAGE_DONE_NEG
1412 | PLAYER_FIELD_MOD_DAMAGE_DONE_PCT
1419 | PLAYER_FIELD_MOD_HEALING_DONE_POS
1420 | PLAYER_FIELD_MOD_TARGET_RESISTANCE
1421 | PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE
1422 | PLAYER_FIELD_BYTES
1423 | PLAYER_AMMO_ID
1424 | PLAYER_SELF_RES_SPELL
1425 | PLAYER_FIELD_PVP_MEDALS
1426 | PLAYER_FIELD_BUYBACK_PRICE_1
1438 | PLAYER_FIELD_BUYBACK_TIMESTAMP_1
1450 | PLAYER_FIELD_KILLS
1451 | PLAYER_FIELD_TODAY_CONTRIBUTION
1452 | PLAYER_FIELD_YESTERDAY_CONTRIBUTION
1453 | PLAYER_FIELD_LIFETIME_HONORBALE_KILLS | Общее кол-во хонор убийств.
1454 | PLAYER_FIELD_BYTES2
1455 | PLAYER_FIELD_WATCHED_FACTION_INDEX
1456 | PLAYER_FIELD_COMBAT_RATING_1
1456 | PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING
1457 | PLAYER_FIELD_DEFENCE_RATING
1458 | PLAYER_FIELD_DODGE_RATING
1459 | PLAYER_FIELD_PARRY_RATING
1460 | PLAYER_FIELD_BLOCK_RATING
1461 | PLAYER_FIELD_MELEE_HIT_RATING
1462 | PLAYER_FIELD_RANGED_HIT_RATING
1463 | PLAYER_FIELD_SPELL_HIT_RATING
1464 | PLAYER_FIELD_MELEE_CRIT_RATING
1465 | PLAYER_FIELD_RANGED_CRIT_RATING
1472 | PLAYER_FIELD_SPELL_CRIT_RATING
1473 | PLAYER_FIELD_HIT_TAKEN_MELEE_RATING
1474 | PLAYER_FIELD_HIT_TAKEN_RANGED_RATING
1475 | PLAYER_FIELD_HIT_TAKEN_SPELL_RATING
1476 | PLAYER_FIELD_CRIT_TAKEN_MELEE_RATING
1477 | PLAYER_FIELD_CRIT_TAKEN_RANGED_RATING
1478 | PLAYER_FIELD_CRIT_TAKEN_SPELL_RATING
1479 | PLAYER_FIELD_MELEE_HASTE_RATING
1480 | PLAYER_FIELD_RANGED_HASTE_RATING
1481 | PLAYER_FIELD_SPELL_HASTE_RATING
1488 | PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING
1489 | PLAYER_FIELD_OFFHAND_WEAPON_SKILL_RATING
1490 | PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING
1491 | PLAYER_FIELD_EXPERTISE_RATING
1480 | PLAYER_FIELD_ARENA_TEAM_INFO_1_1
1480 | PLAYER_FIELD_ARENA_TEAM_ID_2v2
1486 | PLAYER_FIELD_ARENA_TEAM_ID_3v3
1498 | PLAYER_FIELD_ARENA_TEAM_ID_5v5
1498 | PLAYER_FIELD_HONOR_CURRENCY | Кол-во хонор очков.
1499 | PLAYER_FIELD_ARENA_CURRENCY | Кол-во арена-очков.
1500 | PLAYER_FIELD_MOD_MANA_REGEN
1501 | PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT
1502 | PLAYER_FIELD_MAX_LEVEL | Максимальный уровень, до корого можно развиться.
1503 | PLAYER_FIELD_DAILY_QUESTS_1
1504 | PLAYER_END

Для помощи в поиске значений используйте файл UpdateFields.h из значений элемента EUnitFields. Данные хранятся в 16-тиричной кодировке. Для расшифровки номера массива Вы можете использовать следующую функцию:

<?php
$num=; // указываете число в hex, например $num = '0x0022';
echo hexdec($num); // преобразует число из шестнадцатиричной кодировки в десятичную.
//в нашем случае выведет 34
?>


2.4.3.8606

Character.data/2.4.3.8606

для более подробного разбора смотрим этот файл: UpdateFields.h

Index | Value Name | Comments
0 | OBJECT_FIELD_GUID | Номер персонажа (См. characters.character.guid).
2 | OBJECT_FIELD_TYPE
3 | OBJECT_FIELD_ENTRY
4 | OBJECT_FIELD_SCALE_X | Размер модели персонажа в игре. (float value)
5 | OBJECT_FIELD_PADDING
6 | UNIT_FIELD_CHARM
8 | UNIT_FIELD_SUMMON
10 | UNIT_FIELD_CHARMEDBY
12 | UNIT_FIELD_SUMMONEDBY
14 | UNIT_FIELD_CREATEDBY
16 UNIT_FIELD_TARGET если 17 = 4026535936 то guid выделеного моба.
если 17 = 0 guid выделеного чара.
18 | UNIT_FIELD_PERSUADED
20 | UNIT_FIELD_CHANNEL_OBJECT
22 | UNIT_FIELD_HEALTH | Актуальное кол-во жизней персонажа без бонусов.
23 | UNIT_FIELD_POWER1 | Актуальное кол-во маны персонажа без бонусов.
24 | UNIT_FIELD_POWER2 | Актуальное кол-во ярости у война без бонусов.
25 | UNIT_FIELD_POWER3 | Актуальное кол-во концентрации (focus) персонажа без бонусов.
26 | UNIT_FIELD_POWER4 | Актуальное кол-во энергии у роги без бонусов.
27 | UNIT_FIELD_POWER5 | Актуальное кол-во счастья (happiness) персонажа без бонусов.
28 | UNIT_FIELD_MAXHEALTH | Максимально возможное кол-во жизней без бонусов.
29 | UNIT_FIELD_MAXPOWER1 | Максимально возможное кол-во маны без бонусов.
30 | UNIT_FIELD_MAXPOWER2 | Максимально возможное кол-во ярости у война без бонусов.
31 | UNIT_FIELD_MAXPOWER3 | Максимально возможное кол-во концентрации (focus) без бонусов.
32 | UNIT_FIELD_MAXPOWER4 | Максимально возможное кол-во энергии у роги без бонусов.
33 | UNIT_FIELD_MAXPOWER5 | Максимально возможное кол-во счастья (happiness) без бонусов.
34 | UNIT_FIELD_LEVEL | Уровень персонажа
35 | UNIT_FIELD_FACTIONTEMPLATE | Идентификатор фракции используемый в данный момент FactionTemplate.dbc
36 UNIT_FIELD_BYTES_0 ( class_ << 8 ) | ( gender << 16 ) | ( powertype << 24 )

Пол персонажа + что-то еще. Информация о типе поля содержиться в бите соответствующем числу 65536. По некоторым источникам там хранится внешность персонажа(цет кожи, цвет волос...), но я не проверял.
[PHP]
$char_gender = dechex($data[36]);//переводится из десятичной в шестнадцатиричную.
$char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);//слева дополняет нулями до 8 символов.
$char_gender = $char_gender{3};//берёт 3-й символ 0=>'муж.', 1=>'жен.'
[SQL]
пол -SUBSTRING(LPAD(HEX(CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`,' ',37),' ',-1) AS UNSIGNED)),8,'0'),4,1)

37 | UNIT_VIRTUAL_ITEM_SLOT_DISPLAY
40 | UNIT_VIRTUAL_ITEM_INFO
46 | UNIT_FIELD_FLAGS
47 | UNIT_FIELD_FLAGS_2
48 | UNIT_FIELD_AURA | Ауры наложенные на игрока
104 | UNIT_FIELD_AURAFLAGS
118 | UNIT_FIELD_AURALEVELS
132 | UNIT_FIELD_AURAAPPLICATIONS
146 | UNIT_FIELD_AURASTATE
147 | UNIT_FIELD_BASEATTACKTIME
148 | UNIT_FIELD_OFFHANDATTACKTIME
149 | UNIT_FIELD_RANGEDATTACKTIME
150 | UNIT_FIELD_BOUNDINGRADIUS
151 | UNIT_FIELD_COMBATREACH
152 | UNIT_FIELD_DISPLAYID | Внешность, отображаемая в окне выбора персонажей. Current model ID (can be different from regular if character is morphed, etc)
153 | UNIT_FIELD_NATIVEDISPLAYID | Внешность, отображаемая в окне выбора персонажей. The native model ID. Model always reverts to this number when player is demorphed.
154 | UNIT_FIELD_MOUNTDISPLAYID
155 | UNIT_FIELD_MINDAMAGE
156 | UNIT_FIELD_MAXDAMAGE
157 | UNIT_FIELD_MINOFFHANDDAMAGE
158 | UNIT_FIELD_MAXOFFHANDDAMAGE
159 | UNIT_FIELD_BYTES_1
160 | UNIT_FIELD_PETNUMBER
161 | UNIT_FIELD_PET_NAME_TIMESTAMP
162 | UNIT_FIELD_PETEXPERIENCE
163 | UNIT_FIELD_PETNEXTLEVELEXP
164 | UNIT_DYNAMIC_FLAGS
165 | UNIT_CHANNEL_SPELL
166 | UNIT_MOD_CAST_SPEED
167 | UNIT_CREATED_BY_SPELL
168 | UNIT_NPC_FLAGS
169 | UNIT_NPC_EMOTESTATE
170 | UNIT_TRAINING_POINTS
171 | UNIT_FIELD_STAT0 | Базавая сила
172 | UNIT_FIELD_STAT1 | Базавая ловкость
173 | UNIT_FIELD_STAT2 | Базавая выносливость
174 | UNIT_FIELD_STAT3 | Базавый интелект
175 | UNIT_FIELD_STAT4 | Базавый дух
176 | UNIT_FIELD_POSSTAT0 | Бонус на силу
177 | UNIT_FIELD_POSSTAT1 | Бонус на ловкость
178 | UNIT_FIELD_POSSTAT2 | Бонус на выносливость
179 | UNIT_FIELD_POSSTAT3 | Бонус на интелект
180 | UNIT_FIELD_POSSTAT4 | Бонус на дух
181 | UNIT_FIELD_NEGSTAT0 | Антибонус на силу
182 | UNIT_FIELD_NEGSTAT1 | Антибонус на ловкость
183 | UNIT_FIELD_NEGSTAT2 | Антибонус на выносливость
184 | UNIT_FIELD_NEGSTAT3 | Антибонус на интелект
185 | UNIT_FIELD_NEGSTAT4 | Антибонус на дух
186 | UNIT_FIELD_RESISTANCES | Базовая броня
187 | Стойкость Holy без бонусов в том числе и расовых
188 | Стойкость Fire без бонусов в том числе и расовых
189 | Стойкость Nature без бонусов в том числе и расовых
190 | Стойкость Frost без бонусов в том числе и расовых
191 | Стойкость Shadow без бонусов в том числе и расовых
192 | Стойкость Arcane без бонусов в том числе и расовых
193 | UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE
200 | UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE
207 | UNIT_FIELD_BASE_MANA
208 | UNIT_FIELD_BASE_HEALTH
209 | UNIT_FIELD_BYTES_2
210 | UNIT_FIELD_ATTACK_POWER
211 | UNIT_FIELD_ATTACK_POWER_MODS
212 | UNIT_FIELD_ATTACK_POWER_MULTIPLIER
213 | UNIT_FIELD_RANGED_ATTACK_POWER
214 | UNIT_FIELD_RANGED_ATTACK_POWER_MODS
215 | UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER
216 | UNIT_FIELD_MINRANGEDDAMAGE
217 | UNIT_FIELD_MAXRANGEDDAMAGE
218 | UNIT_FIELD_POWER_COST_MODIFIER
225 | UNIT_FIELD_POWER_COST_MULTIPLIER
232 | UNIT_FIELD_MAXHEALTHMODIFIER
233 | UNIT_FIELD_PADDING
234 | PLAYER_DUEL_ARBITER
236 | PLAYER_FLAGS
237 | PLAYER_GUILDID | Id гильдии в которой состоит персонаж (См. characters.guild.guildid)
238 | PLAYER_GUILDRANK | Id ранга, который у персоонажа, если он состоит в гильдии (См. guild_rank.rid)
239 | PLAYER_BYTES | (face << 8) | (hairStyle << 16) | (hairColor << 24))
240 | PLAYER_BYTES_2 | (0x00 << 8) | (0x00 << 16) | (0x02 << 24)))
241 | PLAYER_BYTES_3 | Вроди, отвечает за голос. (gender)
242 | PLAYER_DUEL_TEAM
243 | PLAYER_GUILD_TIMESTAMP
244 | PLAYER_QUEST_LOG_1_1 | ID квеста
245 | PLAYER_QUEST_LOG_1_2 | Если в квесте надо убить n-ое кол-во мобов то в первом параметре хранится число уже убитых мобов, если достигнуто необходимое число bin(1000000000000000000000000)+n или же просто квест выполнен и осталось только здать его bin(1000000000000000000000000) первый бит становится единицей
246 | PLAYER_QUEST_LOG_1_3
247 | PLAYER_QUEST_LOG_1_4
248 | PLAYER_QUEST_LOG_2_1
249 | PLAYER_QUEST_LOG_2_2
250 | PLAYER_QUEST_LOG_2_3
251 | PLAYER_QUEST_LOG_2_4
252 | PLAYER_QUEST_LOG_3_1
253 | PLAYER_QUEST_LOG_3_2
254 | PLAYER_QUEST_LOG_3_3
255 | PLAYER_QUEST_LOG_3_4
256 | PLAYER_QUEST_LOG_4_1
257 | PLAYER_QUEST_LOG_4_2
258 | PLAYER_QUEST_LOG_4_3
259 | PLAYER_QUEST_LOG_4_4
260 | PLAYER_QUEST_LOG_5_1
261 | PLAYER_QUEST_LOG_5_2
262 | PLAYER_QUEST_LOG_5_3
263 | PLAYER_QUEST_LOG_5_4
264 | PLAYER_QUEST_LOG_6_1
265 | PLAYER_QUEST_LOG_6_2
266 | PLAYER_QUEST_LOG_6_3
267 | PLAYER_QUEST_LOG_6_4
268 | PLAYER_QUEST_LOG_7_1
269 | PLAYER_QUEST_LOG_7_2
270 | PLAYER_QUEST_LOG_7_3
271 | PLAYER_QUEST_LOG_7_4
272 | PLAYER_QUEST_LOG_8_1
273 | PLAYER_QUEST_LOG_8_2
274 | PLAYER_QUEST_LOG_8_3
275 | PLAYER_QUEST_LOG_8_4
276 | PLAYER_QUEST_LOG_9_1
277 | PLAYER_QUEST_LOG_9_2
278 | PLAYER_QUEST_LOG_9_3
279 | PLAYER_QUEST_LOG_9_4
280 | PLAYER_QUEST_LOG_10_1
281 | PLAYER_QUEST_LOG_10_2
282 | PLAYER_QUEST_LOG_10_3
283 | PLAYER_QUEST_LOG_10_4
284 | PLAYER_QUEST_LOG_11_1
285 | PLAYER_QUEST_LOG_11_2
286 | PLAYER_QUEST_LOG_11_3
287 | PLAYER_QUEST_LOG_11_4
288 | PLAYER_QUEST_LOG_12_1
289 | PLAYER_QUEST_LOG_12_2
290 | PLAYER_QUEST_LOG_12_3
291 | PLAYER_QUEST_LOG_12_4
292 | PLAYER_QUEST_LOG_13_1
293 | PLAYER_QUEST_LOG_13_2
294 | PLAYER_QUEST_LOG_13_3
295 | PLAYER_QUEST_LOG_13_4
296 | PLAYER_QUEST_LOG_14_1
297 | PLAYER_QUEST_LOG_14_2
298 | PLAYER_QUEST_LOG_14_3
299 | PLAYER_QUEST_LOG_14_4
300 | PLAYER_QUEST_LOG_15_1
301 | PLAYER_QUEST_LOG_15_2
302 | PLAYER_QUEST_LOG_15_3
303 | PLAYER_QUEST_LOG_15_4
304 | PLAYER_QUEST_LOG_16_1
305 | PLAYER_QUEST_LOG_16_2
306 | PLAYER_QUEST_LOG_16_3
307 | PLAYER_QUEST_LOG_16_4
308 | PLAYER_QUEST_LOG_17_1
309 | PLAYER_QUEST_LOG_17_2
310 | PLAYER_QUEST_LOG_17_3
311 | PLAYER_QUEST_LOG_17_4
312 | PLAYER_QUEST_LOG_18_1
313 | PLAYER_QUEST_LOG_18_2
314 | PLAYER_QUEST_LOG_18_3
315 | PLAYER_QUEST_LOG_18_4
316 | PLAYER_QUEST_LOG_19_1
317 | PLAYER_QUEST_LOG_19_2
318 | PLAYER_QUEST_LOG_19_3
319 | PLAYER_QUEST_LOG_19_4
320 | PLAYER_QUEST_LOG_20_1
321 | PLAYER_QUEST_LOG_20_2
322 | PLAYER_QUEST_LOG_20_3
323 | PLAYER_QUEST_LOG_20_4
324 | PLAYER_QUEST_LOG_21_1
325 | PLAYER_QUEST_LOG_21_2
326 | PLAYER_QUEST_LOG_21_3
327 | PLAYER_QUEST_LOG_21_4
328 | PLAYER_QUEST_LOG_22_1
329 | PLAYER_QUEST_LOG_22_2
330 | PLAYER_QUEST_LOG_22_3
331 | PLAYER_QUEST_LOG_22_4
332 | PLAYER_QUEST_LOG_23_1
333 | PLAYER_QUEST_LOG_23_2
334 | PLAYER_QUEST_LOG_23_3
335 | PLAYER_QUEST_LOG_23_4
336 | PLAYER_QUEST_LOG_24_1
337 | PLAYER_QUEST_LOG_24_2
338 | PLAYER_QUEST_LOG_24_3
339 | PLAYER_QUEST_LOG_24_4
340 | PLAYER_QUEST_LOG_25_1
341 | PLAYER_QUEST_LOG_25_2
342 | PLAYER_QUEST_LOG_25_3
343 | PLAYER_QUEST_LOG_25_4
344 | PLAYER_VISIBLE_ITEM_1_CREATOR
346 | PLAYER_VISIBLE_ITEM_1_0 | Вещь на голове (См. mangos.item_template.entry).
358 | PLAYER_VISIBLE_ITEM_1_PROPERTIES
359 | PLAYER_VISIBLE_ITEM_1_PAD
360 | PLAYER_VISIBLE_ITEM_2_CREATOR
362 | PLAYER_VISIBLE_ITEM_2_0 | Вещь на шее (См. mangos.item_template.entry).
374 | PLAYER_VISIBLE_ITEM_2_PROPERTIES
375 | PLAYER_VISIBLE_ITEM_2_PAD
376 | PLAYER_VISIBLE_ITEM_3_CREATOR
378 | PLAYER_VISIBLE_ITEM_3_0 | Вещь на плечах (См. mangos.item_template.entry).
390 | PLAYER_VISIBLE_ITEM_3_PROPERTIES
391 | PLAYER_VISIBLE_ITEM_3_PAD
392 | PLAYER_VISIBLE_ITEM_4_CREATOR
394 | PLAYER_VISIBLE_ITEM_4_0 | Рубашка (См. mangos.item_template.entry).
406 | PLAYER_VISIBLE_ITEM_4_PROPERTIES
407 | PLAYER_VISIBLE_ITEM_4_PAD
408 | PLAYER_VISIBLE_ITEM_5_CREATOR
410 | PLAYER_VISIBLE_ITEM_5_0 | Вещь на груди (См. mangos.item_template.entry).
422 | PLAYER_VISIBLE_ITEM_5_PROPERTIES
423 | PLAYER_VISIBLE_ITEM_5_PAD
424 | PLAYER_VISIBLE_ITEM_6_CREATOR
426 | PLAYER_VISIBLE_ITEM_6_0 | Вещь на поясе (См. mangos.item_template.entry).
438 | PLAYER_VISIBLE_ITEM_6_PROPERTIES
439 | PLAYER_VISIBLE_ITEM_6_PAD
440 | PLAYER_VISIBLE_ITEM_7_CREATOR
442 | PLAYER_VISIBLE_ITEM_7_0 | Штаны (См. mangos.item_template.entry).
454 | PLAYER_VISIBLE_ITEM_7_PROPERTIES
455 | PLAYER_VISIBLE_ITEM_7_PAD
456 | PLAYER_VISIBLE_ITEM_8_CREATOR
458 | PLAYER_VISIBLE_ITEM_8_0 | Сапоги (См. mangos.item_template.entry).
470 | PLAYER_VISIBLE_ITEM_8_PROPERTIES
471 | PLAYER_VISIBLE_ITEM_8_PAD
472 | PLAYER_VISIBLE_ITEM_9_CREATOR
474 | PLAYER_VISIBLE_ITEM_9_0 | Вещь на запястье (См. mangos.item_template.entry).
486 | PLAYER_VISIBLE_ITEM_9_PROPERTIES
487 | PLAYER_VISIBLE_ITEM_9_PAD
488 | PLAYER_VISIBLE_ITEM_10_CREATOR
490 | PLAYER_VISIBLE_ITEM_10_0 | Перчатки (См. mangos.item_template.entry).
502 | PLAYER_VISIBLE_ITEM_10_PROPERTIES
503 | PLAYER_VISIBLE_ITEM_10_PAD
504 | PLAYER_VISIBLE_ITEM_11_CREATOR
506 | PLAYER_VISIBLE_ITEM_11_0 | Кольцо 1 (См. mangos.item_template.entry).
518 | PLAYER_VISIBLE_ITEM_11_PROPERTIES
519 | PLAYER_VISIBLE_ITEM_11_PAD
520 | PLAYER_VISIBLE_ITEM_12_CREATOR
522 | PLAYER_VISIBLE_ITEM_12_0 | Кольцо 2 (См. mangos.item_template.entry).
534 | PLAYER_VISIBLE_ITEM_12_PROPERTIES
535 | PLAYER_VISIBLE_ITEM_12_PAD
536 | PLAYER_VISIBLE_ITEM_13_CREATOR
538 | PLAYER_VISIBLE_ITEM_13_0 | Серьга 1 (См. mangos.item_template.entry).
550 | PLAYER_VISIBLE_ITEM_13_PROPERTIES
551 | PLAYER_VISIBLE_ITEM_13_PAD
552 | PLAYER_VISIBLE_ITEM_14_CREATOR
554 | PLAYER_VISIBLE_ITEM_14_0 | Серьга 2 (См. mangos.item_template.entry).
566 | PLAYER_VISIBLE_ITEM_14_PROPERTIES
567 | PLAYER_VISIBLE_ITEM_14_PAD
568 | PLAYER_VISIBLE_ITEM_15_CREATOR
570 | PLAYER_VISIBLE_ITEM_15_0 | Плащ (См. mangos.item_template.entry).
582 | PLAYER_VISIBLE_ITEM_15_PROPERTIES
583 | PLAYER_VISIBLE_ITEM_15_PAD
584 | PLAYER_VISIBLE_ITEM_16_CREATOR
586 | PLAYER_VISIBLE_ITEM_16_0 | Вещь в главной руке (См. mangos.item_template.entry).
598 | PLAYER_VISIBLE_ITEM_16_PROPERTIES
599 | PLAYER_VISIBLE_ITEM_16_PAD
600 | PLAYER_VISIBLE_ITEM_17_CREATOR
602 | PLAYER_VISIBLE_ITEM_17_0 | Вещь во второй руке (См. mangos.item_template.entry).
614 | PLAYER_VISIBLE_ITEM_17_PROPERTIES
615 | PLAYER_VISIBLE_ITEM_17_PAD
616 | PLAYER_VISIBLE_ITEM_18_CREATOR
618 | PLAYER_VISIBLE_ITEM_18_0 | Вещь для дальнего боя (См. mangos.item_template.entry).
630 | PLAYER_VISIBLE_ITEM_18_PROPERTIES
631 | PLAYER_VISIBLE_ITEM_18_PAD
632 | PLAYER_VISIBLE_ITEM_19_CREATOR
634 | PLAYER_VISIBLE_ITEM_19_0 | Гильдийская накидка (См. mangos.item_template.entry).
646 | PLAYER_VISIBLE_ITEM_19_PROPERTIES
647 | PLAYER_VISIBLE_ITEM_19_PAD
648 | PLAYER_CHOSEN_TITLE
649 | PLAYER_FIELD_PAD_0
650 | PLAYER_FIELD_INV_SLOT_HEAD
696 | PLAYER_FIELD_PACK_SLOT_1
728 | PLAYER_FIELD_BANK_SLOT_1
784 | PLAYER_FIELD_BANKBAG_SLOT_1
798 | PLAYER_FIELD_VENDORBUYBACK_SLOT_1
822 | PLAYER_FIELD_KEYRING_SLOT_1
886 | PLAYER_FIELD_VANITYPET_SLOT_1
922 | PLAYER_FARSIGHT
924 | PLAYER__FIELD_KNOWN_TITLES
926 | PLAYER_XP | Актуальное кол-во опыта.
927 | PLAYER_NEXT_LEVEL_XP | Необходимое количество опыта для получения следующего уровня.
928 PLAYER_SKILL_INFO_1_1 Информация о скилах и его навыках.
Формат: id_skill value 0, где:
-id_skill берется из SharedDefines.h, если професия вносятся id_skill+65536 (некоторые чистым id из SharedDefines.h)

-value Навык = (макс_значение * 65536) + текущее_значение.

-0 Разделитель.
1312 | PLAYER_CHARACTER_POINTS1 | Кол-во свободных очков талантов.
1313 | PLAYER_CHARACTER_POINTS2 | Кол-во не свободных очков талантов.
1314 | PLAYER_TRACK_CREATURES
1315 | PLAYER_TRACK_RESOURCES
1316 | PLAYER_BLOCK_PERCENTAGE | Вероятность в % блока атаки (block).
1317 | PLAYER_DODGE_PERCENTAGE | Вероятность в % уворота от атаки (dodge).
1318 | PLAYER_PARRY_PERCENTAGE | Вероятность в % отражать атаку (parry).
1319 | PLAYER_EXPERTISE
1320 | PLAYER_OFFHAND_EXPERTISE
1321 | PLAYER_CRIT_PERCENTAGE | Вероятность в % нанести критический удар в ближнем бою.
1322 | PLAYER_RANGED_CRIT_PERCENTAGE | Вероятность в % нанести критический в дальнем бою.
1323 | PLAYER_OFFHAND_CRIT_PERCENTAGE | Вероятность в % нанести критический удар второй рукой.
1324 | PLAYER_SPELL_CRIT_PERCENTAGE1 | Вероятность в % нанести критический удар магией.
1325 | PLAYER_HOLY_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Holy магией.
1326 | PLAYER_FIRE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Fire магией.
1327 | PLAYER_NATURE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Nature магией.
1328 | PLAYER_FROST_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Frost магией.
1329 | PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Shadow магией.
1330 | PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE | Вероятность в % нанести критический удар Arcane магией.
1331 | PLAYER_SHIELD_BLOCK | Вероятность в % блокировать удар щитом.
1332 | PLAYER_EXPLORED_ZONES_1 | Исследованые зоны.
1460 | PLAYER_REST_STATE_EXPERIENCE
1461 | PLAYER_FIELD_COINAGE | Хранит кол-во денег в формате GGSSCC, например, 1g 3s 50c = 10350
1462 | PLAYER_FIELD_MOD_DAMAGE_DONE_POS
1469 | PLAYER_FIELD_MOD_DAMAGE_DONE_NEG
1476 | PLAYER_FIELD_MOD_DAMAGE_DONE_PCT
1483 | PLAYER_FIELD_MOD_HEALING_DONE_POS
1484 | PLAYER_FIELD_MOD_TARGET_RESISTANCE
1485 | PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE
1486 | PLAYER_FIELD_BYTES
1487 | PLAYER_AMMO_ID
1488 | PLAYER_SELF_RES_SPELL
1489 | PLAYER_FIELD_PVP_MEDALS
1490 | PLAYER_FIELD_BUYBACK_PRICE_1
1502 | PLAYER_FIELD_BUYBACK_TIMESTAMP_1
1514 | PLAYER_FIELD_KILLS
1515 | PLAYER_FIELD_TODAY_CONTRIBUTION
1516 | PLAYER_FIELD_YESTERDAY_CONTRIBUTION
1517 | PLAYER_FIELD_LIFETIME_HONORBALE_KILLS | Общее кол-во хонор убийств.
1518 | PLAYER_FIELD_BYTES2
1519 | PLAYER_FIELD_WATCHED_FACTION_INDEX
1520 | PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING
1521 | PLAYER_FIELD_DEFENCE_RATING
1522 | PLAYER_FIELD_DODGE_RATING
1523 | PLAYER_FIELD_PARRY_RATING
1524 | PLAYER_FIELD_BLOCK_RATING
1525 | PLAYER_FIELD_MELEE_HIT_RATING
1526 | PLAYER_FIELD_RANGED_HIT_RATING
1527 | PLAYER_FIELD_SPELL_HIT_RATING
1528 | PLAYER_FIELD_MELEE_CRIT_RATING
1529 | PLAYER_FIELD_RANGED_CRIT_RATING
1530 | PLAYER_FIELD_SPELL_CRIT_RATING
1531 | PLAYER_FIELD_TAKEN_MELEE_HIT_RATING
1532 | PLAYER_FIELD_TAKEN_RANGED_HIT_RATING
1533 | PLAYER_FIELD_TAKEN_SPELL_HIT_RATING
1534 | PLAYER_FIELD_CRIT_TAKEN_MELEE_RATING
1535 | PLAYER_FIELD_CRIT_TAKEN_RANGED_RATING
1536 | PLAYER_FIELD_CRIT_TAKEN_SPELL_RATING
1537 | PLAYER_FIELD_MELEE_HASTE_RATING
1538 | PLAYER_FIELD_RANGED_HASTE_RATING
1539 | PLAYER_FIELD_SPELL_HASTE_RATING
1540 | PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING
1541 | PLAYER_FIELD_OFFHAND_WEAPON_SKILL_RATING
1542 | PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING
1543 | PLAYER_FIELD_EXPERTISE_RATING
1544 | PLAYER_FIELD_ARENA_TEAM_ID_2v2
1550 | PLAYER_FIELD_ARENA_TEAM_ID_3v3
1556 | PLAYER_FIELD_ARENA_TEAM_ID_5v5
1562 | PLAYER_FIELD_HONOR_CURRENCY | Кол-во хонор очков.
1563 | PLAYER_FIELD_ARENA_CURRENCY | Кол-во арена-очков.
1564 | PLAYER_FIELD_MOD_MANA_REGEN
1565 | PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT
1566 | PLAYER_FIELD_MAX_LEVEL | Максимальный уровень, до корого можно развиться.
1583 | PLAYER_FIELD_DAILY_QUESTS_1
1591 | PLAYER_END


3.0.3.9183, 3.0.8.9464, 3.0.8a.9506

Character.data/3.0.3.9183

Для более подробного разбора смотрите этот файл: UpdateFields.h

Эта таблица для версии 3.0.3

Индекс | Название | Комментарии
0 | OBJECT_FIELD_GUID | GUID персонажа (полный GUID включает 0 и 1 индексы как 64-битное число)
2 | OBJECT_FIELD_TYPE
3 | OBJECT_FIELD_ENTRY
4 | OBJECT_FIELD_SCALE_X | Размер модели персонажа в игре (float)
5 | OBJECT_FIELD_PADDING
6 | UNIT_FIELD_CHARM
8 | UNIT_FIELD_SUMMON
10 | UNIT_FIELD_CRITTER
12 | UNIT_FIELD_CHARMEDBY
14 | UNIT_FIELD_SUMMONEDBY
16 | UNIT_FIELD_CREATEDBY
18 UNIT_FIELD_TARGET Если 17 = 4026535936, то GUID выделеного моба,
Если 17 = 0, GUID выделеного чара
20 | UNIT_FIELD_CHANNEL_OBJECT
22 | UNIT_FIELD_BYTES_0
23 | UNIT_FIELD_HEALTH | Текущее здоровье (без бонусов)
24 | UNIT_FIELD_POWER1 | Текущая мана (без бонусов)
25 | UNIT_FIELD_POWER2 | Текущая ярость (без бонусов)
26 | UNIT_FIELD_POWER3 | Текущая концентрация (без бонусов)
27 | UNIT_FIELD_POWER4 | Текущая энергия (без бонусов)
28 | UNIT_FIELD_POWER5 | Текущее счастье (без бонусов)
29 | UNIT_FIELD_POWER6
30 | UNIT_FIELD_POWER7
31 | UNIT_FIELD_MAXHEALTH | Максимальное здоровье (без бонусов)
32 | UNIT_FIELD_MAXPOWER1 | Максимальная мана (без бонусов)
33 | UNIT_FIELD_MAXPOWER2 | Максимальная ярость (без бонусов)
34 | UNIT_FIELD_MAXPOWER3 | Максимальная концентрация (без бонусов)
35 | UNIT_FIELD_MAXPOWER4 | Максимальная энергия (без бонусов)
36 | UNIT_FIELD_MAXPOWER5 | Максимальное счастье (без бонусов)
37 | UNIT_FIELD_MAXPOWER6
38 | UNIT_FIELD_MAXPOWER7
39 | UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER
46 | UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER
53 | UNIT_FIELD_LEVEL | Уровень персонажа
54 | UNIT_FIELD_FACTIONTEMPLATE | ID фракции персонажа (FactionTemplate.dbc)
55 UNIT_VIRTUAL_ITEM_SLOT_ID ( class_ << 8 ) | ( gender << 16 ) | ( powertype << 24 )
Вероятно, информация о рассе, классе и поле персонажа. Вообщем, внешность.
58 | UNIT_FIELD_FLAGS
59 | UNIT_FIELD_FLAGS_2
60 | UNIT_FIELD_AURASTATE
61 | UNIT_FIELD_BASEATTACKTIME
63 | UNIT_FIELD_RANGEDATTACKTIME
64 | UNIT_FIELD_BOUNDINGRADIUS
65 | UNIT_FIELD_COMBATREACH
66 | UNIT_FIELD_DISPLAYID | Текущий ID модели (может отличаться от обычного, если персонаж превращен и т.д.)
67 | UNIT_FIELD_NATIVEDISPLAYID | Обычнай ID модели. В эту модель возвращается персонаж при снятии превращения.
68 | UNIT_FIELD_MOUNTDISPLAYID
69 | UNIT_FIELD_MINDAMAGE
70 | UNIT_FIELD_MAXDAMAGE
71 | UNIT_FIELD_MINOFFHANDDAMAGE
72 | UNIT_FIELD_MAXOFFHANDDAMAGE
73 | UNIT_FIELD_BYTES_1
74 | UNIT_FIELD_PETNUMBER
75 | UNIT_FIELD_PET_NAME_TIMESTAMP
76 | UNIT_FIELD_PETEXPERIENCE
77 | UNIT_FIELD_PETNEXTLEVELEXP
78 | UNIT_DYNAMIC_FLAGS
79 | UNIT_CHANNEL_SPELL
80 | UNIT_MOD_CAST_SPEED
81 | UNIT_CREATED_BY_SPELL
82 | UNIT_NPC_FLAGS
83 | UNIT_NPC_EMOTESTATE
84 | UNIT_FIELD_STAT0 | Базовая сила (без бонусов)
85 | UNIT_FIELD_STAT1 | Базовая ловкость (без бонусов)
86 | UNIT_FIELD_STAT2 | Базовая стамина (без бонусов)
87 | UNIT_FIELD_STAT3 | Базовый интеллект (без бонусов)
88 | UNIT_FIELD_STAT4 | Базовый дух (без бонусов)
89 | UNIT_FIELD_POSSTAT0 | Бонус на силу
90 | UNIT_FIELD_POSSTAT1 | Бонус на ловкость
91 | UNIT_FIELD_POSSTAT2 | Бонус на стамину
92 | UNIT_FIELD_POSSTAT3 | Бонус на интеллект
93 | UNIT_FIELD_POSSTAT4 | Бонус на дух
94 | UNIT_FIELD_NEGSTAT0 | Антибонус на силу
95 | UNIT_FIELD_NEGSTAT1 | Антибонус на ловкость
96 | UNIT_FIELD_NEGSTAT2 | Антибонус на стамину
97 | UNIT_FIELD_NEGSTAT3 | Антибонус на интеллект
98 | UNIT_FIELD_NEGSTAT4 | Антибонус на дух
99 | UNIT_FIELD_RESISTANCES | Базовая броня (без бонусов)
100 | Базовая защита от Holy (без бонусов)
101 | Базовая защита от Fire (без бонусов)
102 | Базовая защита от Nature (без бонусов)
103 | Базовая защита от Frost (без бонусов)
104 | Базовая защита от Darkness (без бонусов)
105 | Базовая защита от Arcane (без бонусов)
106 | UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE
113 | UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE
120 | UNIT_FIELD_BASE_MANA
121 | UNIT_FIELD_BASE_HEALTH
122 | UNIT_FIELD_BYTES_2
123 | UNIT_FIELD_ATTACK_POWER
124 | UNIT_FIELD_ATTACK_POWER_MODS
125 | UNIT_FIELD_ATTACK_POWER_MULTIPLIER
126 | UNIT_FIELD_RANGED_ATTACK_POWER
127 | UNIT_FIELD_RANGED_ATTACK_POWER_MODS
128 | UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER
129 | UNIT_FIELD_MINRANGEDDAMAGE
130 | UNIT_FIELD_MAXRANGEDDAMAGE
131 | UNIT_FIELD_POWER_COST_MODIFIER
138 | UNIT_FIELD_POWER_COST_MULTIPLIER
145 | UNIT_FIELD_MAXHEALTHMODIFIER
146 | UNIT_FIELD_HOVERHEIGHT
147 | UNIT_FIELD_PADDING
148 | PLAYER_DUEL_ARBITER
150 | PLAYER_FLAGS
151 | PLAYER_GUILDID | ID гильдии персонажа
152 | PLAYER_GUILDRANK | ID ранга персонажа в гильдии
153 | PLAYER_BYTES | (hairStyle << 16) | (face << 8) | skin)
154 PLAYER_BYTES_2 (maxslot << 16) | (unused << 8) | facialHair)

restState: rested = 0x01, normal = 0x02

155 PLAYER_BYTES_3 Голос персонажа
gender, drunken state
156 | PLAYER_DUEL_TEAM
157 | PLAYER_GUILD_TIMESTAMP
158 | PLAYER_QUEST_LOG_1_1 | ID квеста
159 | PLAYER_QUEST_LOG_1_2 | Если в квесте надо убить n-ое кол-во мобов то в первом параметре хранится число уже убитых мобов, если достигнуто необходимое число bin(1000000000000000000000000)+n или же просто квест выполнен и осталось только здать его bin(1000000000000000000000000) первый бит становится единицей
160 | PLAYER_QUEST_LOG_1_3
161 | PLAYER_QUEST_LOG_1_4
162 | PLAYER_QUEST_LOG_2_1
163 | PLAYER_QUEST_LOG_2_2
164 | PLAYER_QUEST_LOG_2_3
165 | PLAYER_QUEST_LOG_2_4
166 | PLAYER_QUEST_LOG_3_1
167 | PLAYER_QUEST_LOG_3_2
168 | PLAYER_QUEST_LOG_3_3
169 | PLAYER_QUEST_LOG_3_4
170 | PLAYER_QUEST_LOG_4_1
171 | PLAYER_QUEST_LOG_4_2
172 | PLAYER_QUEST_LOG_4_3
173 | PLAYER_QUEST_LOG_4_4
174 | PLAYER_QUEST_LOG_5_1
175 | PLAYER_QUEST_LOG_5_2
176 | PLAYER_QUEST_LOG_5_3
177 | PLAYER_QUEST_LOG_5_4
178 | PLAYER_QUEST_LOG_6_1
179 | PLAYER_QUEST_LOG_6_2
180 | PLAYER_QUEST_LOG_6_3
181 | PLAYER_QUEST_LOG_6_4
182 | PLAYER_QUEST_LOG_7_1
183 | PLAYER_QUEST_LOG_7_2
184 | PLAYER_QUEST_LOG_7_3
185 | PLAYER_QUEST_LOG_7_4
186 | PLAYER_QUEST_LOG_8_1
187 | PLAYER_QUEST_LOG_8_2
188 | PLAYER_QUEST_LOG_8_3
189 | PLAYER_QUEST_LOG_8_4
190 | PLAYER_QUEST_LOG_9_1
191 | PLAYER_QUEST_LOG_9_2
192 | PLAYER_QUEST_LOG_9_3
193 | PLAYER_QUEST_LOG_9_4
194 | PLAYER_QUEST_LOG_10_1
195 | PLAYER_QUEST_LOG_10_2
196 | PLAYER_QUEST_LOG_10_3
197 | PLAYER_QUEST_LOG_10_4
198 | PLAYER_QUEST_LOG_11_1
199 | PLAYER_QUEST_LOG_11_2
200 | PLAYER_QUEST_LOG_11_3
201 | PLAYER_QUEST_LOG_11_4
202 | PLAYER_QUEST_LOG_12_1
203 | PLAYER_QUEST_LOG_12_2
204 | PLAYER_QUEST_LOG_12_3
205 | PLAYER_QUEST_LOG_12_4
206 | PLAYER_QUEST_LOG_13_1
207 | PLAYER_QUEST_LOG_13_2
208 | PLAYER_QUEST_LOG_13_3
209 | PLAYER_QUEST_LOG_13_4
210 | PLAYER_QUEST_LOG_14_1
211 | PLAYER_QUEST_LOG_14_2
212 | PLAYER_QUEST_LOG_14_3
213 | PLAYER_QUEST_LOG_14_4
214 | PLAYER_QUEST_LOG_15_1
215 | PLAYER_QUEST_LOG_15_2
216 | PLAYER_QUEST_LOG_15_3
217 | PLAYER_QUEST_LOG_15_4
218 | PLAYER_QUEST_LOG_16_1
219 | PLAYER_QUEST_LOG_16_2
220 | PLAYER_QUEST_LOG_16_3
221 | PLAYER_QUEST_LOG_16_4
222 | PLAYER_QUEST_LOG_17_1
223 | PLAYER_QUEST_LOG_17_2
224 | PLAYER_QUEST_LOG_17_3
225 | PLAYER_QUEST_LOG_17_4
226 | PLAYER_QUEST_LOG_18_1
227 | PLAYER_QUEST_LOG_18_2
228 | PLAYER_QUEST_LOG_18_3
229 | PLAYER_QUEST_LOG_18_4
230 | PLAYER_QUEST_LOG_19_1
231 | PLAYER_QUEST_LOG_19_2
232 | PLAYER_QUEST_LOG_19_3
233 | PLAYER_QUEST_LOG_19_4
234 | PLAYER_QUEST_LOG_20_1
235 | PLAYER_QUEST_LOG_20_2
236 | PLAYER_QUEST_LOG_20_3
237 | PLAYER_QUEST_LOG_20_4
238 | PLAYER_QUEST_LOG_21_1
239 | PLAYER_QUEST_LOG_21_2
240 | PLAYER_QUEST_LOG_21_3
241 | PLAYER_QUEST_LOG_21_4
242 | PLAYER_QUEST_LOG_22_1
243 | PLAYER_QUEST_LOG_22_2
244 | PLAYER_QUEST_LOG_22_3
245 | PLAYER_QUEST_LOG_22_4
246 | PLAYER_QUEST_LOG_23_1
247 | PLAYER_QUEST_LOG_23_2
248 | PLAYER_QUEST_LOG_23_3
249 | PLAYER_QUEST_LOG_23_4
250 | PLAYER_QUEST_LOG_24_1
251 | PLAYER_QUEST_LOG_24_2
252 | PLAYER_QUEST_LOG_24_3
253 | PLAYER_QUEST_LOG_24_4
254 | PLAYER_QUEST_LOG_25_1
255 | PLAYER_QUEST_LOG_25_2
256 | PLAYER_QUEST_LOG_25_3
257 | PLAYER_QUEST_LOG_25_4
258 | PLAYER_VISIBLE_ITEM_1_CREATOR
260 | PLAYER_VISIBLE_ITEM_1_0 | ID предмета на голове
273 | PLAYER_VISIBLE_ITEM_1_PROPERTIES
274 | PLAYER_VISIBLE_ITEM_1_SEED
275 | PLAYER_VISIBLE_ITEM_1_PAD
276 | PLAYER_VISIBLE_ITEM_2_CREATOR
278 | PLAYER_VISIBLE_ITEM_2_0 | ID предмета на шее
291 | PLAYER_VISIBLE_ITEM_2_PROPERTIES
292 | PLAYER_VISIBLE_ITEM_2_SEED
293 | PLAYER_VISIBLE_ITEM_2_PAD
294 | PLAYER_VISIBLE_ITEM_3_CREATOR
296 | PLAYER_VISIBLE_ITEM_3_0 | ID предмета на плечах
309 | PLAYER_VISIBLE_ITEM_3_PROPERTIES
310 | PLAYER_VISIBLE_ITEM_3_SEED
311 | PLAYER_VISIBLE_ITEM_3_PAD
312 | PLAYER_VISIBLE_ITEM_4_CREATOR
314 | PLAYER_VISIBLE_ITEM_4_0 | ID предмета на теле
327 | PLAYER_VISIBLE_ITEM_4_PROPERTIES
328 | PLAYER_VISIBLE_ITEM_4_SEED
329 | PLAYER_VISIBLE_ITEM_4_PAD
330 | PLAYER_VISIBLE_ITEM_5_CREATOR
332 | PLAYER_VISIBLE_ITEM_5_0 | ID предмета на груди
345 | PLAYER_VISIBLE_ITEM_5_PROPERTIES
346 | PLAYER_VISIBLE_ITEM_5_SEED
347 | PLAYER_VISIBLE_ITEM_5_PAD
348 | PLAYER_VISIBLE_ITEM_6_CREATOR
350 | PLAYER_VISIBLE_ITEM_6_0 | ID предмета на поясе
363 | PLAYER_VISIBLE_ITEM_6_PROPERTIES
364 | PLAYER_VISIBLE_ITEM_6_SEED
365 | PLAYER_VISIBLE_ITEM_6_PAD
366 | PLAYER_VISIBLE_ITEM_7_CREATOR
368 | PLAYER_VISIBLE_ITEM_7_0 | ID предмета на ногах
381 | PLAYER_VISIBLE_ITEM_7_PROPERTIES
382 | PLAYER_VISIBLE_ITEM_7_SEED
383 | PLAYER_VISIBLE_ITEM_7_PAD
384 | PLAYER_VISIBLE_ITEM_8_CREATOR
386 | PLAYER_VISIBLE_ITEM_8_0 | ID предмета на сапогах
399 | PLAYER_VISIBLE_ITEM_8_PROPERTIES
400 | PLAYER_VISIBLE_ITEM_8_SEED
401 | PLAYER_VISIBLE_ITEM_8_PAD
402 | PLAYER_VISIBLE_ITEM_9_CREATOR
404 | PLAYER_VISIBLE_ITEM_9_0 | ID предмета на запястье
417 | PLAYER_VISIBLE_ITEM_9_PROPERTIES
418 | PLAYER_VISIBLE_ITEM_9_SEED
419 | PLAYER_VISIBLE_ITEM_9_PAD
420 | PLAYER_VISIBLE_ITEM_10_CREATOR
422 | PLAYER_VISIBLE_ITEM_10_0 | ID предмета на перчатках
435 | PLAYER_VISIBLE_ITEM_10_PROPERTIES
436 | PLAYER_VISIBLE_ITEM_10_SEED
437 | PLAYER_VISIBLE_ITEM_10_PAD
438 | PLAYER_VISIBLE_ITEM_11_CREATOR
440 | PLAYER_VISIBLE_ITEM_11_0 | ID предмета на кольце 1
453 | PLAYER_VISIBLE_ITEM_11_PROPERTIES
454 | PLAYER_VISIBLE_ITEM_11_SEED
455 | PLAYER_VISIBLE_ITEM_11_PAD
456 | PLAYER_VISIBLE_ITEM_12_CREATOR
458 | PLAYER_VISIBLE_ITEM_12_0 | ID предмета на кольце 2
471 | PLAYER_VISIBLE_ITEM_12_PROPERTIES
472 | PLAYER_VISIBLE_ITEM_12_SEED
473 | PLAYER_VISIBLE_ITEM_12_PAD
474 | PLAYER_VISIBLE_ITEM_13_CREATOR
476 | PLAYER_VISIBLE_ITEM_13_0 | ID предмета на серьгах 1
489 | PLAYER_VISIBLE_ITEM_13_PROPERTIES
490 | PLAYER_VISIBLE_ITEM_13_SEED
491 | PLAYER_VISIBLE_ITEM_13_PAD
492 | PLAYER_VISIBLE_ITEM_14_CREATOR
494 | PLAYER_VISIBLE_ITEM_14_0 | ID предмета на серьгах 2
507 | PLAYER_VISIBLE_ITEM_14_PROPERTIES
508 | PLAYER_VISIBLE_ITEM_14_SEED
509 | PLAYER_VISIBLE_ITEM_14_PAD
510 | PLAYER_VISIBLE_ITEM_15_CREATOR
512 | PLAYER_VISIBLE_ITEM_15_0 | ID предмета на плаще
525 | PLAYER_VISIBLE_ITEM_15_PROPERTIES
526 | PLAYER_VISIBLE_ITEM_15_SEED
527 | PLAYER_VISIBLE_ITEM_15_PAD
528 | PLAYER_VISIBLE_ITEM_16_CREATOR
530 | PLAYER_VISIBLE_ITEM_16_0 | ID предмета в главной руке
543 | PLAYER_VISIBLE_ITEM_16_PROPERTIES
544 | PLAYER_VISIBLE_ITEM_16_SEED
545 | PLAYER_VISIBLE_ITEM_16_PAD
546 | PLAYER_VISIBLE_ITEM_17_CREATOR
548 | PLAYER_VISIBLE_ITEM_17_0 | ID предмета во второй руке
561 | PLAYER_VISIBLE_ITEM_17_PROPERTIES
562 | PLAYER_VISIBLE_ITEM_17_SEED
563 | PLAYER_VISIBLE_ITEM_17_PAD
564 | PLAYER_VISIBLE_ITEM_18_CREATOR
566 | PLAYER_VISIBLE_ITEM_18_0 | ID предмета на слоте дальнего боя
579 | PLAYER_VISIBLE_ITEM_18_PROPERTIES
580 | PLAYER_VISIBLE_ITEM_18_SEED
581 | PLAYER_VISIBLE_ITEM_18_PAD
582 | PLAYER_VISIBLE_ITEM_19_CREATOR
584 | PLAYER_VISIBLE_ITEM_19_0 | ID предмета на накидке гильдии
597 | PLAYER_VISIBLE_ITEM_19_PROPERTIES
598 | PLAYER_VISIBLE_ITEM_19_SEED
599 | PLAYER_VISIBLE_ITEM_19_PAD
600 | PLAYER_CHOSEN_TITLE
601 | PLAYER_FIELD_PAD_0
602 | PLAYER_FIELD_INV_SLOT_HEAD
648 | PLAYER_FIELD_PACK_SLOT_1
680 | PLAYER_FIELD_BANK_SLOT_1
736 | PLAYER_FIELD_BANKBAG_SLOT_1
750 | PLAYER_FIELD_VENDORBUYBACK_SLOT_1
774 | PLAYER_FIELD_KEYRING_SLOT_1
838 | PLAYER_FIELD_VANITYPET_SLOT_1
874 | PLAYER_FIELD_CURRENCYTOKEN_SLOT_1
938 | PLAYER_FIELD_QUESTBAG_SLOT_1
1002 | PLAYER_FARSIGHT
1004 | PLAYER__FIELD_KNOWN_TITLES
1006 | PLAYER__FIELD_KNOWN_TITLES1
1008 | PLAYER_FIELD_KNOWN_CURRENCIES
1010 | PLAYER_XP | Текущее количество опыта
1011 | PLAYER_NEXT_LEVEL_XP | Необходимое количество опыта для получения следующего уровня
1012 PLAYER_SKILL_INFO_1_1 Информация о скилах и навыках.
Формат: id_skill value 0, где:
  • id_skill берется из SharedDefines.h, если професия вносятся id_skill+65536 (некоторые чистым id из SharedDefines.h)
  • value - навык = (макс_значение * 65536) + текущее_значение
  • 0 - разделитель
1396 | PLAYER_CHARACTER_POINTS1 | Кол-во свободных очков талантов.
1397 | PLAYER_CHARACTER_POINTS2 | Кол-во несвободных очков талантов.
1398 | PLAYER_TRACK_CREATURES
1399 | PLAYER_TRACK_RESOURCES
1400 | PLAYER_BLOCK_PERCENTAGE | Вероятность в % блока атаки (block)
1401 | PLAYER_DODGE_PERCENTAGE | Вероятность в % уворота от атаки (dodge)
1402 | PLAYER_PARRY_PERCENTAGE | Вероятность в % отразить атаку (parry)
1403 | PLAYER_EXPERTISE
1404 | PLAYER_OFFHAND_EXPERTISE
1405 | PLAYER_CRIT_PERCENTAGE | Вероятность в % нанести критический удар в ближнем бою
1406 | PLAYER_RANGED_CRIT_PERCENTAGE | Вероятность в % нанести критический в дальнем бою
1407 | PLAYER_OFFHAND_CRIT_PERCENTAGE | Вероятность в % нанести критический удар второй рукой
1408 | PLAYER_SPELL_CRIT_PERCENTAGE1 | Вероятность в % нанести критический удар магией
1415 | PLAYER_SHIELD_BLOCK | Вероятность в % блокировать удар щитом
1416 | PLAYER_SHIELD_BLOCK_CRIT_PERCENTAGE
1417 | PLAYER_EXPLORED_ZONES_1 | Исследованые зоны
1545 | PLAYER_REST_STATE_EXPERIENCE
1546 | PLAYER_FIELD_COINAGE | Хранит кол-во денег в формате GGSSCC, например, 1g 3s 50c = 10350
1547 | PLAYER_FIELD_MOD_DAMAGE_DONE_POS
1554 | PLAYER_FIELD_MOD_DAMAGE_DONE_NEG
1561 | PLAYER_FIELD_MOD_DAMAGE_DONE_PCT
1568 | PLAYER_FIELD_MOD_HEALING_DONE_POS
1569 | PLAYER_FIELD_MOD_TARGET_RESISTANCE
1570 | PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE
1571 | PLAYER_FIELD_BYTES
1572 | PLAYER_AMMO_ID
1573 | PLAYER_SELF_RES_SPELL
1574 | PLAYER_FIELD_PVP_MEDALS
1575 | PLAYER_FIELD_BUYBACK_PRICE_1
1587 | PLAYER_FIELD_BUYBACK_TIMESTAMP_1
1599 | PLAYER_FIELD_KILLS
1600 | PLAYER_FIELD_TODAY_CONTRIBUTION
1601 | PLAYER_FIELD_YESTERDAY_CONTRIBUTION
1602 | PLAYER_FIELD_LIFETIME_HONORBALE_KILLS | Общее кол-во хонор убийств
1603 | PLAYER_FIELD_BYTES2
1604 | PLAYER_FIELD_WATCHED_FACTION_INDEX
1605 | PLAYER_FIELD_COMBAT_RATING_1
1630 | PLAYER_FIELD_ARENA_TEAM_INFO_1_1
1648 | PLAYER_FIELD_HONOR_CURRENCY | Кол-во очков хонора
1649 | PLAYER_FIELD_ARENA_CURRENCY | Кол-во очков арены
1650 | PLAYER_FIELD_MAX_LEVEL | Максимальный уровень, до корого можно развиться
1651 | PLAYER_FIELD_DAILY_QUESTS_1
1676 | PLAYER_RUNE_REGEN_1
1680 | PLAYER_NO_REAGENT_COST_1
1683 | PLAYER_FIELD_GLYPH_SLOTS_1
1691 | PLAYER_FIELD_GLYPHS_1
1699 | PLAYER_GLYPHS_ENABLED
1700 | PLAYER_END


.orientation

Orientation

Ориентация задается математически в радианах, шестью значащами цифрами:

Север  - 0*Pi   => 0.00000
Восток - Pi/2   => 1.57079
Юг     - Pi     => 3.14159
Запад  - 3*Pi/2 => 4.71238


.race

Character.race

Раса:

1 | Человек
2 | Орк
3 | Двaрф
4 | Ночной эльф
5 | Нежить
6 | Таурен
7 | Гном
8 | Тролль
10 | Кровавый эльф
11 | Дреней


.class

Character.class

Класс:

1 | Воин
2 | Паладин
3 | Охотник
4 | Разбойник
5 | Жрец
6 | Рыцарь Смерти(WoLK)
7 | Шаман
8 | Маг
9 | Колдун
11 | Друид


character_action

Таблица `character_action`

Связывает кнопки пользовательского интерфейса с задаваемыми им действиями.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
button | tinyint(3) | unsigned | NO | 0 |
action | smallint(5) | unsigned | NO | 0 |
type | tinyint(3) | unsigned | NO | 0 |
misc | tinyint(3) | unsigned | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа, которому принадлежит связка (См. characters.characters.guid).

button

Номер кнопки, на которую задана связка. Может принимать следующие значения:

 0.....11 - Первый набор стандартной панели
 12....23 - Второй набор стандартной панели
 24....35 - Третий набор стандартной и правой бовокой панели
 36....47 - Четвертый набор стандартной и второй правой боковой панели
 48....59 - Пятый набор стандартной и нижней правой панели
 60....71 - Шестой набор стандартной и нижней левой панели
 72....83 - Первая специальная панель
 84....95 - Вторая специальная панель
 96...107 - Третья специальная панель
 118..119 - Четвертая специальная панель

action

Номер записи действия, привязанного к этой кнопке. Может быть номером спелла (См. Spell.dbc), номером шаблона предмета (См. mangos.item_template.entry) или номером макрокоманды на стороне клиента, в зависимости от значения поля Type.

type

Тип кнопки. Влияет на интерпретацию поля action. Может принимать следующие значения:

 0   - Спелл
 64  - Макрокоманда
 128 - Предмет

misc

Передаваемое клиенту 'дополнительное' значение.


character_aura

Таблица `character_aura`

Содержит действующие на персонажа ауры.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
caster_guid | bigint(20) | unsigned | NO | 0 | Full Global Unique Identifier
spell | int(11) | unsigned | NO | 0 |
effect_index | int(11) | unsigned | NO | 0 |
amount | int(11) |  | NO | 0 |
maxduration | int(11) |  | NO | 0 |
remaintime | int(11) |  | NO | 0 |
remaincharges | int(11) |  | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа, к которому привязана аура (См. characters.characters.guid).

caster_guid

Номер записи персонажа, который наложил ауру (См. characters.characters.guid).

spell

Идентификатор спелла из Spell.dbc, которым вызвана аура.

effect_index

Номер ауры спелла.

amount

!нет описания!

maxduration

!нет описания!

remaintime

Оставшееся до окончания действия ауры время в секундах.

remaincharges

Осталось зарядов (Например, "Щит Молний" (Шаман))


сharacter_declinedname

Таблица `сharacter_declinedname`

Содержит данные по склонениям имён персонажей на кирилице.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
genitive | varchar(15) |  | YES | Empty |
dative | varchar(15) |  | YES | Empty |
accusative | varchar(15) |  | YES | Empty |
instrumental | varchar(15) |  | YES | Empty |
prepositional | varchar(15) |  | YES | Empty |

Описание полей таблицы

guid

Уникальный номер записи(см. characters.characters.guid ).

genitive

имя персонажа в родительном падеже

dative

имя персонажа в дательном падеже

accusative

имя персонажа в винительном падеже

instrumental

имя персонажа в творительном падеже

prepositional

имя персонажа в предложном падеже


character_gifts

Таблица `character_gifts`

Содержит подарки персонажей.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(20) | unsigned | NO | 0 |
item_guid | int(11) | unsigned | NO | 0 |
entry | int(20) | unsigned | NO | 0 |
flags | int(20) | unsigned | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа, который создал подарок (См. characters.characters.guid).

item_guid

Идентификатор записи предмета, который завёрнут в подарок (См. mangos.item_instance.guid).

entry

Идентификатор подарка.

flags

!Нет описания!


character_homebind

Таблица `character_homebind`

Содержит привязку персонажа к его 'дому', то есть месту, куда он возвращается посредством Hearthstone.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
map | int(11) | unsigned | NO | 0 | Map Identifier
zone | int(11) | unsigned | NO | 0 | Zone Identifier
position_x | float |  | NO | 0 |
position_y | float |  | NO | 0 |
position_z | float |  | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа, к которому привязана локация его 'дома' (См. characters.characters.guid).

map

Номер карты, на которой расположен 'дом' персонажа.

zone

Номер записи зоны, от которой берется название для подсказки к Hearthstone.

position_x

Координата X точки, в которую телепортируется персонаж при использовании Hearthstone.

position_y

Координата Y точки, в которую телепортируется персонаж при использовании Hearthstone.

position_z

Координата Z точки, в которую телепортируется персонаж при использовании Hearthstone.


character_instance

Таблица `character_instance`

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

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 |
map | int(11) | unsigned | NO | 0 |
instance | bigint(40) |  | NO | 0 |
leader | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа, к которому привязан инст (См. characters.characters.guid).

map

Номер карты инста.

instance

Идентификатор инста (См. characters.instance.id).

leader

Номер записи персонажа, являющегося лидером (См. characters.characters.guid).


character_inventory

Таблица `character_inventory`

Содержит записи по каждому имеющемуся в инвентаре предмету.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
bag | int(11) | unsigned | NO | 0 |
slot | tinyint(3) | unsigned | NO | 0 |
item | int(11) | unsigned | NO | 0 | Item Global Unique Identifier
item_template | int(11) | unsigned | NO | 0 | Item Identifier

Описание полей таблицы

guid

Номер записи персонажа, которому принадлежит предмет (См. characters.characters.guid).

bag

Номер сумки, в которой хранится предмет. Сумка 0 является специальной и используется для рюкзака и всех дополнительных хранилищ.

slot

Номер слота в сумке, в котором хранится предмет. Для 255 сумки может принимать следующие значения:

 0...18 - Носимые предметы
 19..22 - Носимые сумки
 23..38 - Предметы в рюзкаке
 39..66 - Предметы в основном хранилище банка
 66..73 - Хранящиеся в банке сумки
 73..84 - Предметы на выкуп у мерчанта
 86..90 - Ключи в ключнице

item

Номер записи предмета (См. characters.item_instance.guid).

item_template

Номер записи шаблона предмета (См. mangos.item_template.entry).


character_pet

Содержание

  • 1 Таблица `character_pet`
  • 2 Описание полей таблицы
    • 2.1 id
    • 2.2 entry
    • 2.3 owner
    • 2.4 modelid
    • 2.5 CreatedBySpell
    • 2.6 PetType
    • 2.7 level
    • 2.8 exp
    • 2.9 Reactstate
    • 2.10 Commandstate
    • 2.11 loyaltypoints
    • 2.12 loyalty
    • 2.13 trainpoint
    • 2.14 name
    • 2.15 renamed
    • 2.16 slot
    • 2.17 curhealth
    • 2.18 curmana
    • 2.19 curhappiness
    • 2.20 savetime
    • 2.21 resettalents_cost
    • 2.22 resettalents_time
    • 2.23 abdata
    • 2.24 teachspelldata

Таблица `character_pet`

Содержит свойства всех присвоенных персонажу петов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
entry | int(11) | unsigned | NO | 0 |
owner | int(11) | unsigned | NO | 0 |
modelid | int(11) | unsigned | YES | 0 |
CreatedBySpell | int(11) | unsigned | NO | 0 |
PetType | tinyint(3) | unsigned | NO | 0 |
level | int(11) | unsigned | NO | 1 |
exp | int(11) | unsigned | NO | 0 |
Reactstate | tinyint(1) | unsigned | NO | 0 |
Commandstate | tinyint(1) | unsigned | NO | 1 |
loyaltypoints | int(11) |  | NO | 0 |
loyalty | int(11) | unsigned | NO | 0 |
trainpoint | int(11) |  | NO | 0 |
name | varchar(100) |  | YES | Pet |
renamed | tinyint(1) | unsigned | NO | 0 |
slot | int(11) | unsigned | NO | 0 |
curhealth | int(11) | unsigned | NO | 1 |
curmana | int(11) | unsigned | NO | 0 |
curhappiness | int(11) | unsigned | NO | 0 |
savetime | bigint(20) | unsigned | NO | 0 |
resettalents_cost | int(11) | unsigned | NO | 0 |
resettalents_time | bigint(20) | unsigned | NO | 0 |
abdata | longtext |  | YES |  |
teachspelldata | longtext |  | YES |  |

Описание полей таблицы

id

Уникальный номер записи.

entry

Номер записи существа-пета (См. mangos.creature.guid).

owner

Номер записи персонажа, которому принадлежит пет (См. characters.characters.guid).

modelid

Номер модели пета.

CreatedBySpell

Номер спелла, которым был создан пет.

PetType

Тип пета

1 - Петы охотника
0 - Петы варлока и т.п.

level

Уровень пета.

exp

Опыт пета.

Reactstate

!Нет описания!

Commandstate

!Нет описания!

loyaltypoints

Текущее значение доли верности пета - по достижении предела (верхнего или нижнего) происходит изменение уровня верности.

loyalty

Текущее значение верности пета.

trainpoint

Очки талантов пета, которые можно потратить у тренера.

name

Текущее имя пета.

renamed

Был ли пет переименован. Может принимать следующие значения:

 0 - Не был
 1 - Был

slot

Номер слота, в ктором хранится пет.

curhealth

Текущее значение жизни пета.

curmana

Текущее значение маны пета.

curhappiness

Текущее значение счасться пета.

savetime

!Нет описания!

resettalents_cost

!Нет описания!

resettalents_time

!Нет описания!

abdata

!Нет описания!

teachspelldata

!Нет описания!


сharacter_pet_declinedname

Таблица `сharacter_pet_declinedname`

Содержит данные по склонениям имён петов на кирилице.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
owner | int(11) |  | NO | 0 |
genitive | varchar(15) |  | YES | Empty |
dative | varchar(15) |  | YES | Empty |
accusative | varchar(15) |  | YES | Empty |
instrumental | varchar(15) |  | YES | Empty |
prepositional | varchar(15) |  | YES | Empty |

Описание полей таблицы

guid

Уникальный номер записи из characters.character_pet.id ).

owner

Номер персонажа-хозяина пета ( characters.characters.guid ).

genitive

имя пета в родительном падеже

dative

имя пета в дательном падеже

accusative

имя пета в винительном падеже

instrumental

имя пета в творительном падеже

prepositional

имя пета в предложном падеже


character_queststatus

Таблица `character_queststatus`

Содержит состояние всех квестов, в которых персонажи принимали участие.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
quest | int(11) | unsigned | NO | 0 | Quest Identifier
status | int(11) | unsigned | NO | 0 |
rewarded | tinyint(1) | unsigned | NO | 0 |
explored | tinyint(1) | unsigned | NO | 0 |
timer | bigint(20) | unsigned | NO | 0 |
mobcount1 | int(11) | unsigned | NO | 0 |
mobcount2 | int(11) | unsigned | NO | 0 |
mobcount3 | int(11) | unsigned | NO | 0 |
mobcount4 | int(11) | unsigned | NO | 0 |
itemcount1 | int(11) | unsigned | NO | 0 |
itemcount2 | int(11) | unsigned | NO | 0 |
itemcount3 | int(11) | unsigned | NO | 0 |
itemcount4 | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа (См. characters.characters.guid).

quest

Номер записи квеста (См. mangos.quest_template.entry).

status

Текущее состояние квеста для указанного персонажа. Может принимать следующие значения:

 0 - Квест еще не был рассмотрен
 1 - Квест был однажды завершен
 2 - Квест недоступен
 3 - Квест находится в процессе выполнения
 4 - Квест доступен

rewarded

Была ли получена награда за квест.

 0 - нет
 1 - да

explored

Было ли выполнено условие на открытие зоны.

 0 - нет
 1 - да

timer

Время окончания квеста.

mobcount1.-4.

Количество убитых мобов указанного в описании квеста.

itemcount1.-4.

Количество собранных предметов указанного в описании квеста.


character_queststatus_daily

Таблица `character_queststatus_daily`

Содержит данные о времени выполнения ежедневных квестов.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
quest | int(11) | unsigned | NO | 0 | Quest Identifier
time | bigint(20) | unsigned | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа (См. characters.characters.guid).

quest

Номер записи квеста (См. mangos.quest_template.entry).

time

Компоновка материалов: DeusModus


character_reputation

Таблица `character_reputation`

Содержит уровень репутации персонажей у встреченных ими фракций.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
faction | int(11) | unsigned | NO | 0 |
standing | int(11) |  | NO | 0 |
flags | int(11) |  | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа (См. characters.characters.guid).

faction

Номер фракции.

standing

Текущий уровень репутации персонажа.

Neutral | 1
Friendly | 3000
Honored | 9000
Revered | 21000
Exalted | 42000

flags

Флаги, влияющие на обработку фракции клиентом. Вы можете объединять флаги, добавляя их вместе.

Флаг | Имя | Комментарий
1 | FACTION_FLAG_VISIBLE | Фракция отображается в списке фракций клиента.
2 | FACTION_FLAG_AT_WAR | Игрок находится с фракцией в состоянии войны.
4 | FACTION_FLAG_UNKNOWN | ?
8 | FACTION_FLAG_INVISIBLE | Фракция не отображается в списке фракций клиента.
16 | FACTION_FLAG_OWN_TEAM | Расовые фракции.
32 | FACTION_FLAG_INACTIVE | Фракция отображается в группе Inactive


character_social

Таблица `character_social`

Содержит записи игнорирования / добавления в друзья персонажей.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Character Global Unique Identifier
friend | int(11) | unsigned | NO | 0 | Friend Global Unique Identifier
flags | tinyint(1) | unsigned | NO |  | Friend Flags
note | varchar(21) |  | NO |  | Friend Note

Описание полей таблицы

guid

Номер записи персонажа (См. characters.characters.guid).

friend

Идентификатор персонажа, являющегося 'целью' записи (См. characters.characters.guid).

flags

Статус отношения к персонажу. Может принимать следующие значения:

 0 - персонаж добавлен в список друзей.
 1 - персонаж добавлен в список игнорирования.

note

Для заметки.


character_spell

Таблица `character_spell`

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

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
spell | int(11) | unsigned | NO | 0 | Spell Identifier
slot | int(11) | unsigned | NO | 0 |
active | tinyint(3) | unsigned | NO | 1 |

Описание полей таблицы

guid

Номер записи персонажа (См. characters.characters.guid).

spell

Номер записи спелла (См. Spell.dbc).

slot

Номер слота книги заклинаний, в котором находится спелл.

active

Активен ли спелл в данный момент (Ауры и далее по списку).


character_spell_cooldown

Таблица `character_spell_cooldown`

Содержит кулдауны спеллов персонажей.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier, Low part
spell | int(11) | unsigned | NO | 0 | Spell Identifier
item | int(11) | unsigned | NO | 0 | Item Identifier
time | bigint(20) | unsigned | NO | 0 |

Описание полей таблицы

guid

Номер персонажа (См. characters.characters.guid).

spell

Номер спелла (См. Spell.dbc).

item

Идентификатор предмета (См. mangos.item_template.entry) с которого был скастован спелл.

time

Время завершения кулдауна спелла.


character_ticket

Таблица `character_ticket`

Содержит отправленные персонажами ГМам запросы.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
ticket_id | int(11) |  | NO |  |
guid | int(11) | unsigned | NO | 0 |
ticket_text | text |  | NO |  |
ticket_category | int(1) |  | NO | 0 |
ticket_lastchange | TIMESTAMP |  | NO | CURRENT_TIMESTAMP |

Описание полей таблицы

ticket_id

Уникальный номер записи.

guid

Номер записи отправившего запрос персонажа (См. characters.characters.guid).

ticket_text

Текст запроса.

ticket_category

Тип запроса.

0 | item
1 | behavior/harassment
2 | guild
3 | character
4 | non-quest/creep
5 | stuck
6 | enviromental
7 | quest/quest NPC
8 | account/billing

ticket_lastchange

!Нет описания!


character_tutorial

Таблица `character_tutorial`

Содержит статус показа подсказок для начинающих игроков.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
tut0 | int(11) | unsigned | NO | 0 |
tut1 | int(11) | unsigned | NO | 0 |
tut2 | int(11) | unsigned | NO | 0 |
tut3 | int(11) | unsigned | NO | 0 |
tut4 | int(11) | unsigned | NO | 0 |
tut5 | int(11) | unsigned | NO | 0 |
tut6 | int(11) | unsigned | NO | 0 |
tut7 | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guid

Номер записи персонажа (См. characters.characters.guid).

tut0.-7.

Статус показа подсказки. Может принимать следующие значения:

 0 - Не показана
 1 - Показана


corpse

Таблица `corpse`

Содержит записи по каждому трупу или костям персонажей.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
player | int(11) | unsigned | NO | 0 | Character Global Unique Identifier
position_x | float |  | NO | 0 |
position_y | float |  | NO | 0 |
position_z | float |  | NO | 0 |
orientation | float |  | NO | 0 |
zone | int(11) | unsigned | NO | 38 | Zone Identifier
map | int(11) | unsigned | NO | 0 | Map Identifier
data | longtext |  | YES |  |
time | timestamp |  | YES | 0000-00-00 00:00:00 |
bones_flag | tinyint(3) |  | NO | 0 |
instance | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guid

Уникальный номер записи.

player

Номер записи персонажа, к которому относится труп (См. characters.characters.guid).

position_x

Координата X трупа.

position_y

Координата Y трупа.

position_z

Координата Z трупа.

orientation

Направление трупа.

zone

Номер зоны в которой находится труп.

map

Номер карты на которой находится труп.

data

Набор флагов, определяющих вид трупа и его свойства.

time

Время появления трупа.

bones_flag

Флаг, определяющий, является запись описанием трупа или костей. Может принимать следующие значения:

 0 - Запись относится к трупу.
 1 - Запись относится к костям.

instance

Копия инста, в которой лежит труп (См. characters.instance.id).


groups

Таблица `groups`

Таблица содержит описание групп.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
leaderGuid | int(11) |  | NO |  |
mainTank | int(11) |  | NO |  |
mainAssistant | int(11) |  | NO |  |
lootMethod | tinyint(4) |  | NO | 0 |
looterGuid | int(11) |  | NO |  |
lootThreshold | tinyint(4) |  | NO |  |
icon1 | int(11) |  | NO | 0 |
icon2 | int(11) |  | NO | 0 |
icon3 | int(11) |  | NO | 0 |
icon4 | int(11) |  | NO | 0 |
icon5 | int(11) |  | NO | 0 |
icon6 | int(11) |  | NO | 0 |
icon7 | int(11) |  | NO | 0 |
icon8 | int(11) |  | NO | 0 |
isRaid | tinyint(1) |  | NO |  |

Описание полей таблицы

leaderGuid

Идентификатор лидера группы (См. characters.characters.guid).

mainTank

Идентификатор главного "танка" группы (См. characters.characters.guid).

mainAssistant

Идентификатор главного Ассистента группы (См. characters.characters.guid)

lootMethod

Метод лута.

looterGuid

Идентификатор мастера-лута этой группы (См. characters.characters.guid).

lootThreshold

Пороговое качество, лут-вещи.

icon1.-8.

Номер иконки над каждым участником группы.

isRaid

Является ли группа Рейдом?

 0 - нет
 1 - да


group_member

Таблица `group_member`

Cодержит записи об участниках групп.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
leaderGuid | int(11) |  | NO |  |
memberGuid | int(11) |  | NO |  |
assistant | tinyint(1) |  | NO | 0 |
subgroup | smallint(6) |  | NO | 0 |

Описание полей таблицы

leaderGuid

Лидер группы (См. characters.characters.guid).

memberGuid

Член группы (См. characters.characters.guid).

assistant

!Нет описания!

subgroup

!Нет описания!


guild

Таблица `guild`

Содержит данные о гильдиях.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guildid | int(6) | unsigned | NO | 0 |
name | varchar(255) |  | NO |  |
leaderguid | int(6) | unsigned | NO | 0 |
EmblemStyle | int(5) |  | NO | 0 |
EmblemColor | int(5) |  | NO | 0 |
BorderStyle | int(5) |  | NO | 0 |
BorderColor | int(5) |  | NO | 0 |
BackgroundColor | int(5) |  | NO | 0 |
info | text |  | NO |  |
MOTD | varchar(255) |  | NO |  |
createdate | datetime |  | YES |  |
BankMoney | bigint(20) |  | NO | 0 |

Описание полей таблицы

guildid

Идентификатор гильдии.

name

Название гильдии.

leaderguid

Идентификатор лидера гильдии (См. characters.characters.guid).

EmblemStyle

Стиль эмблемы гильдии.

EmblemColor

Цвет эмблемы гильдии.

BorderStyle

Стиль границ накидки гильдии.

BorderColor

Цвет границ накидки гильдии.

BackgroundColor

Цвет фона накидки гильдии.

info

Информация о гильдии.

MOTD

"Сообщение дня" гильдии.

createdate

Дата создания гильдии.

BankMoney

Кол-во денег в гильд-банке.


guild_bank_eventlog

Таблица `guild_bank_eventlog`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guildid | int(11) | unsigned | NO | 0 |
LogGuid | int(11) | unsigned | NO | 0 |
LogEntry | tinyint(1) | unsigned | NO | 0 |
TabId | tinyint(1) | unsigned | NO | 0 |
PlayerGuid | int(11) | unsigned | NO | 0 |
ItemOrMoney | int(11) | unsigned | NO | 0 |
ItemStackCount | tinyint(3) | unsigned | NO | 0 |
DestTabId | tinyint(1) | unsigned | NO | 0 |
TimeStamp | bigint(20) | unsigned | NO | 0 |

Описание полей таблицы

guildid

Идентификатор гильдии (См. characters.guild.guildid).

LogGuid

!Нет описания!

LogEntry

!Нет описания!

TabId

!Нет описания!

PlayerGuid

!Нет описания!

ItemOrMoney

!Нет описания!

ItemStackCount

!Нет описания!

DestTabId

!Нет описания!

TimeStamp

Время


guild_bank_item

Таблица `guild_bank_item`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guildid | int(11) | unsigned | NO | 0 |
TabId | tinyint(1) | unsigned | NO | 0 |
SlotId | tinyint(3) | unsigned | NO | 0 |
item_guid | int(11) | unsigned | NO | 0 |
item_entry | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guildid

Идентификатор гильдии (См. characters.guild.guildid).

TabId

!Нет описания!

SlotId

!Нет описания!

item_guid

!Нет описания!

item_entry

!Нет описания!


guild_bank_right

Таблица `guild_bank_right`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guildid | int(11) | unsigned | NO | 0 |
TabId | tinyint(1) | unsigned | NO | 0 |
rid | int(11) | unsigned | NO | 0 |
gbright | tinyint(3) | unsigned | NO | 0 |
SlotPerDay | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guildid

Идентификатор гильдии (См. characters.guild.guildid).

TabId

!Нет описания!

rid

!Нет описания!

gbright

!Нет описания!

SlotPerDay

!Нет описания!


guild_bank_tab

Таблица `guild_bank_tab`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guildid | int(11) | unsigned | NO | 0 |
TabId | tinyint(1) | unsigned | NO | 0 |
TabName | varchar(100) |  | NO |  |
TabIcon | varchar(100) |  | NO |  |
TabText | varchar(100) |  | NO |  |

Описание полей таблицы

guildid

Идентификатор гильдии (См. characters.guild.guildid).

TabId

!Нет описания!

TabName

!Нет описания!

TabIcon

!Нет описания!

TabText

!Нет описания!


guild_member

Таблица `guild_member`

Таблица содержит записи о членах гильдий.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guildid | int(6) | unsigned | NO | 0 |
guid | int(11) |  | NO | 0 |
rank | tinyint(2) | unsigned | NO | 0 |
pnote | varchar(255) |  | NO |  |
offnote | varchar(255) |  | NO |  |
BankResetTimeMoney | int(11) | unsigned | NO | 0 |
BankRemMoney | int(11) | unsigned | NO | 0 |
BankResetTimeTab0 | int(11) | unsigned | NO | 0 |
BankRemSlotsTab0 | int(11) | unsigned | NO | 0 |
BankResetTimeTab1 | int(11) | unsigned | NO | 0 |
BankRemSlotsTab1 | int(11) | unsigned | NO | 0 |
BankResetTimeTab2 | int(11) | unsigned | NO | 0 |
BankRemSlotsTab2 | int(11) | unsigned | NO | 0 |
BankResetTimeTab3 | int(11) | unsigned | NO | 0 |
BankRemSlotsTab3 | int(11) | unsigned | NO | 0 |
BankResetTimeTab4 | int(11) | unsigned | NO | 0 |
BankRemSlotsTab4 | int(11) | unsigned | NO | 0 |
BankResetTimeTab5 | int(11) | unsigned | NO | 0 |
BankRemSlotsTab5 | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guildid

Идентификатор гильдии (См. characters.guild.guildid).

guid

Идентификатор персонажа, члена гильдии (См. characters.characters.guid).

rank

Ранг участника (См. characters.guild_rank.rid).

pnote

Заметка участника.

offnote

Офицерская заметка участника.

BankResetTimeMoney

!Нет описания!

BankRemMoney

!Нет описания!

BankResetTimeTab0-5

!Нет описания!

BankRemSlotsTab0-5

!Нет описания!


guild_rank

Таблица `guild_rank`

Содержит данные о рангах в гильдиях.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guildid | int(6) | unsigned | NO | 0 |
rid | int(11) | unsigned | NO | 0 |
rname | varchar(255) |  | NO |  |
rights | int(3) | unsigned | NO | 0 |
BankMoneyPerDay | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guildid

Идентификатор гильдии (См. characters.guild.guildid).

rid

Номер ранга (См. characters.guild_member.rank).

rname

Название ранга.

rights

Права ранга (сумма флагов).

   GR_RIGHT_EMPTY              = 0x00000040,
   GR_RIGHT_GCHATLISTEN        = 0x00000041,
   GR_RIGHT_GCHATSPEAK         = 0x00000042,
   GR_RIGHT_OFFCHATLISTEN      = 0x00000044,
   GR_RIGHT_OFFCHATSPEAK       = 0x00000048,
   GR_RIGHT_PROMOTE            = 0x000000C0,
   GR_RIGHT_DEMOTE             = 0x00000140,
   GR_RIGHT_INVITE             = 0x00000050,
   GR_RIGHT_REMOVE             = 0x00000060,
   GR_RIGHT_SETMOTD            = 0x00001040,
   GR_RIGHT_EPNOTE             = 0x00002040,
   GR_RIGHT_VIEWOFFNOTE        = 0x00004040,
   GR_RIGHT_EOFFNOTE           = 0x00008040,
   GR_RIGHT_MODIFY_GUILD_INFO  = 0x00010040,
   GR_RIGHT_REPAIR_FROM_GUILD  = 0x00020000,               // unused in 2.4.x?, Remove money withdraw capacity
   GR_RIGHT_WITHDRAW_REPAIR    = 0x00040000,               // withdraw for repair
   GR_RIGHT_WITHDRAW_GOLD      = 0x00080000,               // withdraw gold
   GR_RIGHT_ALL                = 0x000FF1FF

BankMoneyPerDay

!нет описания!


instance

Таблица `instance`

!Нет описания!

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 |
map | int(11) | unsigned | NO | 0 |
resettime | bigint(40) |  | NO | 0 |

Описание полей таблицы

id

Идентификатор инста.

map

Номер карты инста.

resettime

Время в минутах полного реса инста.


item_instance

Таблица `item_instance`

Содержит данные о предметах игрока.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 |
owner_guid | int(11) | unsigned | NO | 0 |
data | longtext |  | YES |  |

Описание полей таблицы

guid

Номер записи предмета (См. characters.character_inventory.item).

owner_guid

Номер записи персонажа, которому принадлежит предмет (См. characters.characters.guid).

owner_guid = 0 если предмет находится в гилдбанке (См. characters.Guild_bank_item.item_guid).

data

Параметры предмета(смотреть в UpdateFields.h).


item_text

Таблица `item_text`

Таблица содержит данные о текстах, используемых в письмах.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) |  | NO | 0 |
text | longtext |  | YES |  |

Описание полей таблицы

id

Уникальный id для текста письма (См. characters.mail.itemTextId).

text

Текст письма.


mail

Таблица `mail`

Хранит письма игроков.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
id | int(11) | unsigned | NO | 0 | Identifier
messageType | tinyint(3) | unsigned | NO | 0 |
stationery | tinyint(3) |  | NO | 41 |
sender | int(11) | unsigned | NO | 0 | Character Global Unique Identifier
receiver | int(11) | unsigned | NO | 0 | Character Global Unique Identifier
subject | longtext |  | YES |  |
itemTextId | int(11) | unsigned | NO | 0 |
has_items | tinyint(3) | unsigned | NO | 0 |
expire_time | bigint(40) |  | NO | 0 |
deliver_time | bigint(40) |  | NO | 0 |
money | int(11) | unsigned | NO | 0 |
cod | int(11) | unsigned | NO | 0 |
checked | tinyint(3) | unsigned | NO | 0 |

Описание полей таблицы

id

Уникальный индентификатор для каждого письма.

messageType

Тип письма:

0 - обычное письмо
2 - письма с аукциона

stationery

!Нет описания!

sender

Идентификатор отправителя (См. characters.characters.guid).

receiver

Идентификатор получателя (См. characters.characters.guid).

subject

Тема письма.

itemTextId

Уникальный id для текста письма (См. characters.item_text.id).

has_items

Принимает значение 1, если в письме содержатся итемы и 0 - если нет.

expire_time

Время, когда сообщение будет удалено (так называемый "timestamp") - разница в секундах между моментом удаления письма и датой 00:00:00 01.01.1970. Письмо удаляется по прошествии тридцати дней либо после трех дней, если установлен COD.

deliver_time

Время, когда сообщение было доставлено.

money

Число прикреплённых к сообщению денег.

cod

Cash on delivery amount .. сумма денег которую должен отдать получатель за то, чтобы взять содержимое почты.

checked

Проверено или нет.

0 - Не проверено
O - Проверено


mail_items

Таблица `mail_items`

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
mail_id | int(11) | unsigned | NO | 0 |
item_guid | int(11) | unsigned | NO | 0 |
item_template | int(11) | unsigned | NO | 0 |
receiver | int(11) | unsigned | NO | 0 | Character Global Unique Identifier

Описание полей таблицы

mail_id

Уникальный индентификатор для каждого письма (См. characters.mail.id).

item_guid

Уникальный идентификатор вещи (См. characters.item_instance.guid).

item_template

Идентификатор шаблона вещи (См. mangos.item_template.entry).

receiver

Идентификатор получателя (См. characters.characters.guid).


pet_aura

Таблица `pet_aura`

Содержит действующие на питомца ауры.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
caster_guid | bigint(20) | unsigned | NO | 0 | Full Global Unique Identifier
spell | int(11) | unsigned | NO | 0 |
effect_index | int(11) | unsigned | NO | 0 |
amount | int(11) | unsigned | NO | 0 |
maxduration | int(11) | NO | 0 |
remaintime | int(11) |  | NO | 0 |
remaincharges | int(11) | NO | 0 |

Описание полей таблицы

guid

Глобальный идентификатор питомца (См. characters.character_pet.id).

caster_guid

Номер записи персонажа, который наложил ауру (См. characters.characters.guid).

spell

Идентификатор спелла из Spell.dbc, которым вызвана аура.

effect_index

Номер ауры спелла.

amount

!нет описания!

maxduration

!нет описания!

remaintime

Оставшееся до окончания действия ауры время в секундах.

remaincharges

!нет описания!


pet_spell

Таблица `pet_spell`

Содержит данные о спеллах питомца. Аналогична таблице characters.character_spell.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier
spell | int(11) | unsigned | NO | 0 | Spell Identifier
slot | int(11) | unsigned | NO | 0 |
active | int(11) | unsigned | NO | 0 |

Описание полей таблицы

guid

Глобальный идентификатор питомца. (См. characters.character_pet.id)

spell

Идентификатор спелла из Spell.dbc.

slot

Номер слота.

active

Флаг, активен ли спелл в данный момент.


pet_spell_cooldown

Таблица `pet_spell_cooldown`

Содержит кулдауны спеллов питомцев. Аналогична таблице characters.character_spell_cooldown

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
guid | int(11) | unsigned | NO | 0 | Global Unique Identifier,Low part
spell | int(11) | unsigned | NO | 0 | Spell Identifier
time | bigint(20) | unsigned | NO | 0 |

Описание полей таблицы

guid

Глобальный идентификатор питомца (См. characters.character_pet.id).

spell

Идентификатор спелла из Spell.dbc.

time

Время завершения кулдауна спелла.


petition

Таблица `petition`

В этой таблице хранится список гильдийских грамот.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
ownerguid | int(10) | unsigned | NO | 0 |
petitionguid | int(10) | unsigned | YES | 0 |
name | varchar(255) |  | NO |  |
type | int(10) | unsigned | NO | 0 |

Описание полей таблицы

ownerguid

Идентификатор хозяина гильдийской грамоты (См. characters.characters.guid).

petitionguid

Идентификатор гильдийской грамоты.

name

Название гильдии.

type

!Нет описания!


petition_sign

Таблица `petition_sign`

В этой таблице хранится список игроков, подписавших гильдийскую грамоту.

Поле | Тип | Атрибуты | Пусто | Дефолт | Экстра
ownerguid | int(10) | unsigned | NO | 0 |
petitionguid | int(10) | unsigned | NO | 0 |
playerguid | int(11) | unsigned | NO | 0 |
player_account | int(11) | unsigned | NO | 0 |
type | int(10) | unsigned | NO | 0 |

Описание полей таблицы

ownerguid

Идентификатор хозяина гильдийской грамоты (См. characters.characters.guid)

petitionguid

Идентификатор гильдийской грамоты.

playerguid

Персонаж подписавший гильдийскую грамоту (См. characters.characters.guid).

player_account

Аккаунт подписавшего игрока (чтобы не подписывали с одного аккаунта разными игроками).

type

!Нет описания!


script_texts

Поле | Тип | Пусто
entry | int(11) | NO
content_default | text | NO
content_loc1 | text | NO
content_loc2 | text | NO
content_loc3 | text | NO
content_loc4 | text | NO
content_loc5 | text | NO
content_loc6 | text | NO
content_loc7 | text | NO
content_loc8 | text | NO
sound | mediumint(8) | NO
type | tinyint(3) | NO
language | tinyint(3) | NO
emote | tinyint(3) | NO
comment | text | NO


custom_texts

Поле | Тип | Пусто
entry | int(11) | NO
content_default | text | NO
content_loc1 | text | NO
content_loc2 | text | NO
content_loc3 | text | NO
content_loc4 | text | NO
content_loc5 | text | NO
content_loc6 | text | NO
content_loc7 | text | NO
content_loc8 | text | NO
sound | mediumint(8) | NO
type | tinyint(3) | NO
language | tinyint(3) | NO
emote | tinyint(3) | NO
comment | text | NO


sd2_db_version

Поле | Тип | Пусто
version | varchar(255) | NO

Описание полей таблицы

version

!Нет описания!


AnimationData.dbc

AnimationData.dbc

Для версии: 2.4.2

Таблица хранит в себе данные об анимации.

ID | Name
0 | Stand
1 | Death
2 | Spell
3 | Stop
4 | Walk
5 | Run
6 | Dead
7 | Rise
8 | StandWound
9 | CombatWound
10 | CombatCritical
11 | ShuffleLeft
12 | ShuffleRight
13 | Walkbackwards
14 | Stun
15 | HandsClosed
16 | AttackUnarmed
17 | Attack1H
18 | Attack2H
19 | Attack2HL
20 | ParryUnarmed
21 | Parry1H
22 | Parry2H
23 | Parry2HL
24 | ShieldBlock
25 | ReadyUnarmed
26 | Ready1H
27 | Ready2H
28 | Ready2HL
29 | ReadyBow
30 | Dodge
31 | SpellPrecast
32 | SpellCast
33 | SpellCastArea
34 | NPCWelcome
35 | NPCGoodbye
36 | Block
37 | JumpStart
38 | Jump
39 | JumpEnd
40 | Fall
41 | SwimIdle
42 | Swim
43 | SwimLeft
44 | SwimRight
45 | SwimBackwards
46 | AttackBow
47 | FireBow
48 | ReadyRifle
49 | AttackRifle
50 | Loot
51 | ReadySpellDirected
52 | ReadySpellOmni
53 | SpellCastDirected
54 | SpellCastOmni
55 | BattleRoar
56 | ReadyAbility
57 | Special1H
58 | Special2H
59 | ShieldBash
60 | EmoteTalk
61 | EmoteEat
62 | EmoteWork
63 | EmoteUseStanding
64 | EmoteTalkExclamation
65 | EmoteTalkQuestion
66 | EmoteBow
67 | EmoteWave
68 | EmoteCheer
69 | EmoteDance
70 | EmoteLaugh
71 | EmoteSleep
72 | EmoteSitGround
73 | EmoteRude
74 | EmoteRoar
75 | EmoteKneel
76 | EmoteKiss
77 | EmoteCry
78 | EmoteChicken
79 | EmoteBeg
80 | EmoteApplaud
81 | EmoteShout
82 | EmoteFlex
83 | EmoteShy
84 | EmotePoint
85 | Attack1HPierce
86 | Attack2HLoosePierce
87 | AttackOff
88 | AttackOffPierce
89 | Sheath
90 | HipSheath
91 | Mount
92 | RunRight
93 | RunLeft
94 | MountSpecial
95 | Kick
96 | SitGroundDown
97 | SitGround
98 | SitGroundUp
99 | SleepDown
100 | Sleep
101 | SleepUp
102 | SitChairLow
103 | SitChairMed
104 | SitChairHigh
105 | LoadBow
106 | LoadRifle
107 | AttackThrown
108 | ReadyThrown
109 | HoldBow
110 | HoldRifle
111 | HoldThrown
112 | LoadThrown
113 | EmoteSalute
114 | KneelStart
115 | KneelLoop
116 | KneelEnd
117 | AttackUnarmedOff
118 | SpecialUnarmed
119 | StealthWalk
120 | StealthStand
121 | Knockdown
122 | EatingLoop
123 | UseStandingLoop
124 | ChannelCastDirected
125 | ChannelCastOmni
126 | Whirlwind
127 | Birth
128 | UseStandingStart
129 | UseStandingEnd
130 | CreatureSpecial
131 | Drown
132 | Drowned
133 | FishingCast
134 | FishingLoop
135 | Fly
136 | EmoteWorkNoSheathe
137 | EmoteStunNoSheathe
138 | EmoteUseStandingNoSheathe
139 | SpellSleepDown
140 | SpellKneelStart
141 | SpellKneelLoop
142 | SpellKneelEnd
143 | Sprint
144 | InFlight
145 | Spawn
146 | Close
147 | Closed
148 | Open
149 | Opened
150 | Destroy
151 | Destroyed
152 | Rebuild
153 | Custom0
154 | Custom1
155 | Custom2
156 | Custom3
157 | Despawn
158 | Hold
159 | Decay
160 | BowPull
161 | BowRelease
162 | ShipStart
163 | ShipMoving
164 | ShipStop
165 | GroupArrow
166 | Arrow
167 | CorpseArrow
168 | GuideArrow
169 | Sway
170 | DruidCatPounce
171 | DruidCatRip
172 | DruidCatRake
173 | DruidCatRavage
174 | DruidCatClaw
175 | DruidCatCower
176 | DruidBearSwipe
177 | DruidBearBite
178 | DruidBearMaul
179 | DruidBearBash
180 | DragonTail
181 | DragonStomp
182 | DragonSpit
183 | DragonSpitHover
184 | DragonSpitFly
185 | EmoteYes
186 | EmoteNo
187 | JumpLandRun
188 | LootHold
189 | LootUp
190 | StandHigh
191 | Impact
192 | LiftOff
193 | Hover
194 | SuccubusEntice
195 | EmoteTrain
196 | EmoteDead
197 | EmoteDanceOnce
198 | Deflect
199 | EmoteEatNoSheathe
200 | Land
201 | Submerge
202 | Submerged
203 | Cannibalize
204 | ArrowBirth
205 | GroupArrowBirth
206 | CorpseArrowBirth
207 | GuideArrowBirth
208 | EmoteTalkNoSheathe
209 | EmotePointNoSheathe
210 | EmoteSaluteNoSheathe
211 | EmoteDanceSpecial
212 | Mutilate
213 | CustomSpell01
214 | CustomSpell02
215 | CustomSpell03
216 | CustomSpell04
217 | CustomSpell05
218 | CustomSpell06
219 | CustomSpell07
220 | CustomSpell08
221 | CustomSpell09
222 | CustomSpell10
223 | StealthRun
224 | Emerge
225 | Cower


AreaTable.dbc

AreaTable.dbc

Для версии: 2.4.2

1 | Dun Morogh
2 | Longshore
3 | Badlands
4 | Blasted Lands
7 | Blackwater Cove
8 | Swamp of Sorrows
9 | Northshire Valley
10 | Duskwood
11 | Wetlands
12 | Elwynn Forest
13 | The World Tree
14 | Durotar
15 | Dustwallow Marsh
16 | Azshara
17 | The Barrens
18 | Crystal Lake
19 | Zul'Gurub
20 | Moonbrook
21 | Kul Tiras
22 | Programmer Isle
23 | Northshire River
24 | Northshire Abbey
25 | Blackrock Mountain
26 | Lighthouse
28 | Western Plaguelands
30 | Nine
32 | The Cemetary
33 | Stranglethorn Vale
34 | Echo Ridge Mine
35 | Booty Bay
36 | Alterac Mountains
37 | Lake Nazferiti
38 | Loch Modan
40 | Westfall
41 | Deadwind Pass
42 | Darkshire
43 | Wild Shore
44 | Redridge Mountains
45 | Arathi Highlands
46 | Burning Steppes
47 | The Hinterlands
49 | Dead Man's Hole
51 | Searing Gorge
53 | Thieves Camp
54 | Jasperlode Mine
55 | Valley of Heroes UNUSED
56 | Heroes' Vigil
57 | Fargodeep Mine
59 | Northshire Vineyards
60 | Forest's Edge
61 | Thunder Falls
62 | Brackwell Pumpkin Patch
63 | The Stonefield Farm
64 | The Maclure Vineyards
65 | Reuse Me 3
66 | Reuse Me 6
67 | Reuse Me 5
68 | Lake Everstill
69 | Lakeshire
70 | Stonewatch
71 | Stonewatch Falls
72 | The Dark Portal
73 | The Tainted Scar
74 | Pool of Tears
75 | Stonard
76 | Fallow Sanctuary
77 | Anvilmar
80 | Stormwind Mountains
81 | Jeff NE Quadrant Changed
82 | Jeff NW Quadrant
83 | Jeff SE Quadrant
84 | Jeff SW Quadrant
85 | Tirisfal Glades
86 | Stone Cairn Lake
87 | Goldshire
88 | Eastvale Logging Camp
89 | Mirror Lake Orchard
91 | Tower of Azora
92 | Mirror Lake
93 | Vul'Gol Ogre Mound
94 | Raven Hill
95 | Redridge Canyons
96 | Tower of Ilgalar
97 | Alther's Mill
98 | Rethban Caverns
99 | Rebel Camp
100 | Nesingwary's Expedition
101 | Kurzen's Compound
102 | Ruins of Zul'Kunda
103 | Ruins of Zul'Mamwe
104 | The Vile Reef
105 | Mosh'Ogg Ogre Mound
106 | The Stockpile
107 | Saldean's Farm
108 | Sentinel Hill
109 | Furlbrow's Pumpkin Farm
111 | Jangolode Mine
113 | Gold Coast Quarry
115 | Westfall Lighthouse
116 | Misty Valley
117 | Grom'gol Base Camp
118 | Whelgar's Excavation Site
120 | Westbrook Garrison
121 | Tranquil Gardens Cemetery
122 | Zuuldaia Ruins
123 | Bal'lal Ruins
125 | Kal'ai Ruins
126 | Tkashi Ruins
127 | Balia'mah Ruins
128 | Ziata'jai Ruins
129 | Mizjah Ruins
130 | Silverpine Forest
131 | Kharanos
132 | Coldridge Valley
133 | Gnomeregan
134 | Gol'Bolar Quarry
135 | Frostmane Hold
136 | The Grizzled Den
137 | Brewnall Village
138 | Misty Pine Refuge
139 | Eastern Plaguelands
141 | Teldrassil
142 | Ironband's Excavation Site
143 | Mo'grosh Stronghold
144 | Thelsamar
145 | Algaz Gate
146 | Stonewrought Dam
147 | The Farstrider Lodge
148 | Darkshore
149 | Silver Stream Mine
150 | Menethil Harbor
151 | Designer Island
152 | The Bulwark
153 | Ruins of Lordaeron
154 | Deathknell
155 | Night Web's Hollow
156 | Solliden Farmstead
157 | Agamand Mills
158 | Agamand Family Crypt
159 | Brill
160 | Whispering Gardens
161 | Terrace of Repose
162 | Brightwater Lake
163 | Gunther's Retreat
164 | Garren's Haunt
165 | Balnir Farmstead
166 | Cold Hearth Manor
167 | Crusader Outpost
168 | The North Coast
169 | Whispering Shore
170 | Lordamere Lake
172 | Fenris Isle
173 | Faol's Rest
186 | Dolanaar
187 | Darnassus UNUSED
188 | Shadowglen
189 | Steelgrill's Depot
190 | Hearthglen
192 | Northridge Lumber Camp
193 | Ruins of Andorhal
195 | School of Necromancy
196 | Uther's Tomb
197 | Sorrow Hill
198 | The Weeping Cave
199 | Felstone Field
200 | Dalson's Tears
201 | Gahrron's Withering
202 | The Writhing Haunt
203 | Mardenholde Keep
204 | Pyrewood Village
205 | Dun Modr
206 | UNUSED Westfall
207 | The Great Sea
208 | Unused Ironcladcove
209 | Shadowfang Keep
210 | Reuse Me 2
211 | Iceflow Lake
212 | Helm's Bed Lake
213 | Deep Elem Mine
214 | The Great Sea
215 | Mulgore
219 | Alexston Farmstead
220 | Red Cloud Mesa
221 | Camp Narache
222 | Bloodhoof Village
223 | Stonebull Lake
224 | Ravaged Caravan
225 | Red Rocks
226 | The Skittering Dark
227 | Valgan's Field
228 | The Sepulcher
229 | Olsen's Farthing
230 | The Greymane Wall
231 | Beren's Peril
232 | The Dawning Isles
233 | Ambermill
235 | Fenris Keep
236 | Shadowfang Keep
237 | The Decrepit Ferry
238 | Malden's Orchard
239 | The Ivar Patch
240 | The Dead Field
241 | The Rotting Orchard
242 | Brightwood Grove
243 | Forlorn Rowe
244 | The Whipple Estate
245 | The Yorgen Farmstead
246 | The Cauldron
247 | Grimesilt Dig Site
249 | Dreadmaul Rock
250 | Ruins of Thaurissan
251 | Flame Crest
252 | Blackrock Stronghold
253 | The Pillar of Ash
254 | Blackrock Mountain
255 | Altar of Storms
256 | Aldrassil
257 | Shadowthread Cave
258 | Fel Rock
259 | Lake Al'Ameth
260 | Starbreeze Village
261 | Gnarlpine Hold
262 | Ban'ethil Barrow Den
263 | The Cleft
264 | The Oracle Glade
265 | Wellspring River
266 | Wellspring Lake
267 | Hillsbrad Foothills
268 | Azshara Crater
269 | Dun Algaz
271 | Southshore
272 | Tarren Mill
275 | Durnholde Keep
276 | UNUSED Stonewrought Pass
277 | The Foothill Caverns
278 | Lordamere Internment Camp
279 | Dalaran
280 | Strahnbrad
281 | Ruins of Alterac
282 | Crushridge Hold
283 | Slaughter Hollow
284 | The Uplands
285 | Southpoint Tower
286 | Hillsbrad Fields
287 | Hillsbrad
288 | Azurelode Mine
289 | Nethander Stead
290 | Dun Garok
293 | Thoradin's Wall
294 | Eastern Strand
295 | Western Strand
296 | South Seas UNUSED
297 | Jaguero Isle
298 | Baradin Bay
299 | Menethil Bay
300 | Misty Reed Strand
301 | The Savage Coast
302 | The Crystal Shore
303 | Shell Beach
305 | North Tide's Run
306 | South Tide's Run
307 | The Overlook Cliffs
308 | The Forbidding Sea
309 | Ironbeard's Tomb
310 | Crystalvein Mine
311 | Ruins of Aboraz
312 | Janeiro's Point
313 | Northfold Manor
314 | Go'Shek Farm
315 | Dabyrie's Farmstead
316 | Boulderfist Hall
317 | Witherbark Village
318 | Drywhisker Gorge
320 | Refuge Pointe
321 | Hammerfall
322 | Blackwater Shipwrecks
323 | O'Breen's Camp
324 | Stromgarde Keep
325 | The Tower of Arathor
326 | The Sanctum
327 | Faldir's Cove
328 | The Drowned Reef
330 | Thandol Span
331 | Ashenvale
332 | The Great Sea
333 | Circle of East Binding
334 | Circle of West Binding
335 | Circle of Inner Binding
336 | Circle of Outer Binding
337 | Apocryphan's Rest
338 | Angor Fortress
339 | Lethlor Ravine
340 | Kargath
341 | Camp Kosh
342 | Camp Boff
343 | Camp Wurg
344 | Camp Cagg
345 | Agmond's End
346 | Hammertoe's Digsite
347 | Dustbelch Grotto
348 | Aerie Peak
349 | Wildhammer Keep
350 | Quel'Danil Lodge
351 | Skulk Rock
352 | Zun'watha
353 | Shadra'Alor
354 | Jintha'Alor
355 | The Altar of Zul
356 | Seradane
357 | Feralas
358 | Brambleblade Ravine
359 | Bael Modan
360 | The Venture Co. Mine
361 | Felwood
362 | Razor Hill
363 | Valley of Trials
364 | The Den
365 | Burning Blade Coven
366 | Kolkar Crag
367 | Sen'jin Village
368 | Echo Isles
369 | Thunder Ridge
370 | Drygulch Ravine
371 | Dustwind Cave
372 | Tiragarde Keep
373 | Scuttle Coast
374 | Bladefist Bay
375 | Deadeye Shore
377 | Southfury River
378 | Camp Taurajo
379 | Far Watch Post
380 | The Crossroads
381 | Boulder Lode Mine
382 | The Sludge Fen
383 | The Dry Hills
384 | Dreadmist Peak
385 | Northwatch Hold
386 | The Forgotten Pools
387 | Lushwater Oasis
388 | The Stagnant Oasis
390 | Field of Giants
391 | The Merchant Coast
392 | Ratchet
393 | Darkspear Strand
394 | Darrowmere Lake UNUSED
395 | Caer Darrow UNUSED
396 | Winterhoof Water Well
397 | Thunderhorn Water Well
398 | Wildmane Water Well
399 | Skyline Ridge
400 | Thousand Needles
401 | The Tidus Stair
403 | Shady Rest Inn
404 | Bael'dun Digsite
405 | Desolace
406 | Stonetalon Mountains
407 | Orgrimmar UNUSED
408 | Gillijim's Isle
409 | Island of Doctor Lapidis
410 | Razorwind Canyon
411 | Bathran's Haunt
412 | The Ruins of Ordil'Aran
413 | Maestra's Post
414 | The Zoram Strand
415 | Astranaar
416 | The Shrine of Aessina
417 | Fire Scar Shrine
418 | The Ruins of Stardust
419 | The Howling Vale
420 | Silverwind Refuge
421 | Mystral Lake
422 | Fallen Sky Lake
424 | Iris Lake
425 | Moonwell
426 | Raynewood Retreat
427 | The Shady Nook
428 | Night Run
429 | Xavian
430 | Satyrnaar
431 | Splintertree Post
432 | The Dor'Danil Barrow Den
433 | Falfarren River
434 | Felfire Hill
435 | Demon Fall Canyon
436 | Demon Fall Ridge
437 | Warsong Lumber Camp
438 | Bough Shadow
439 | The Shimmering Flats
440 | Tanaris
441 | Lake Falathim
442 | Auberdine
443 | Ruins of Mathystra
444 | Tower of Althalaxx
445 | Cliffspring Falls
446 | Bashal'Aran
447 | Ameth'Aran
448 | Grove of the Ancients
449 | The Master's Glaive
450 | Remtravel's Excavation
452 | Mist's Edge
453 | The Long Wash
454 | Wildbend River
455 | Blackwood Den
456 | Cliffspring River
457 | The Veiled Sea
458 | Gold Road
459 | Scarlet Watch Post
460 | Sun Rock Retreat
461 | Windshear Crag
463 | Cragpool Lake
464 | Mirkfallon Lake
465 | The Charred Vale
466 | Valley of the Bloodfuries
467 | Stonetalon Peak
468 | The Talon Den
469 | Greatwood Vale
470 | Thunder Bluff UNUSED
471 | Brave Wind Mesa
472 | Fire Stone Mesa
473 | Mantle Rock
474 | Hunter Rise UNUSED
475 | Spirit RiseUNUSED
476 | Elder RiseUNUSED
477 | Ruins of Jubuwal
478 | Pools of Arlithrien
479 | The Rustmaul Dig Site
480 | Camp E'thok
481 | Splithoof Crag
482 | Highperch
483 | The Screeching Canyon
484 | Freewind Post
485 | The Great Lift
486 | Galak Hold
487 | Roguefeather Den
488 | The Weathered Nook
489 | Thalanaar
490 | Un'Goro Crater
491 | Razorfen Kraul
492 | Raven Hill Cemetery
493 | Moonglade
495 | DELETE ME
496 | Brackenwall Village
497 | Swamplight Manor
498 | Bloodfen Burrow
499 | Darkmist Cavern
500 | Moggle Point
501 | Beezil's Wreck
502 | Witch Hill
503 | Sentry Point
504 | North Point Tower
505 | West Point Tower
506 | Lost Point
507 | Bluefen
508 | Stonemaul Ruins
509 | The Den of Flame
510 | The Dragonmurk
511 | Wyrmbog
512 | Blackhoof Village
513 | Theramore Isle
514 | Foothold Citadel
515 | Ironclad Prison
516 | Dustwallow Bay
517 | Tidefury Cove
518 | Dreadmurk Shore
536 | Addle's Stead
537 | Fire Plume Ridge
538 | Lakkari Tar Pits
539 | Terror Run
540 | The Slithering Scar
541 | Marshal's Refuge
542 | Fungal Rock
543 | Golakka Hot Springs
556 | The Loch
576 | Beggar's Haunt
596 | Kodo Graveyard
597 | Ghost Walker Post
598 | Sar'theris Strand
599 | Thunder Axe Fortress
600 | Bolgan's Hole
602 | Mannoroc Coven
603 | Sargeron
604 | Magram Village
606 | Gelkis Village
607 | Valley of Spears
608 | Nijel's Point
609 | Kolkar Village
616 | Hyjal
618 | Winterspring
636 | Blackwolf River
637 | Kodo Rock
638 | Hidden Path
639 | Spirit Rock
640 | Shrine of the Dormant Flame
656 | Lake Elune'ara
657 | The Harborage
676 | Outland
696 | Craftsmen's Terrace UNUSED
697 | Tradesmen's Terrace UNUSED
698 | The Temple Gardens UNUSED
699 | Temple of Elune UNUSED
700 | Cenarion Enclave UNUSED
701 | Warrior's Terrace UNUSED
702 | Rut'theran Village
716 | Ironband's Compound
717 | The Stockade
718 | Wailing Caverns
719 | Blackfathom Deeps
720 | Fray Island
721 | Gnomeregan
722 | Razorfen Downs
736 | Ban'ethil Hollow
796 | Scarlet Monastery
797 | Jerod's Landing
798 | Ridgepoint Tower
799 | The Darkened Bank
800 | Coldridge Pass
801 | Chill Breeze Valley
802 | Shimmer Ridge
803 | Amberstill Ranch
804 | The Tundrid Hills
805 | South Gate Pass
806 | South Gate Outpost
807 | North Gate Pass
808 | North Gate Outpost
809 | Gates of Ironforge
810 | Stillwater Pond
811 | Nightmare Vale
812 | Venomweb Vale
813 | The Bulwark
814 | Southfury River
815 | Southfury River
816 | Razormane Grounds
817 | Skull Rock
818 | Palemane Rock
819 | Windfury Ridge
820 | The Golden Plains
821 | The Rolling Plains
836 | Dun Algaz
837 | Dun Algaz
838 | North Gate Pass
839 | South Gate Pass
856 | Twilight Grove
876 | GM Island
877 | Delete ME
878 | Southfury River
879 | Southfury River
880 | Thandol Span
881 | Thandol Span
896 | Purgation Isle
916 | The Jansen Stead
917 | The Dead Acre
918 | The Molsen Farm
919 | Stendel's Pond
920 | The Dagger Hills
921 | Demont's Place
922 | The Dust Plains
923 | Stonesplinter Valley
924 | Valley of Kings
925 | Algaz Station
926 | Bucklebree Farm
927 | The Shining Strand
928 | North Tide's Hollow
936 | Grizzlepaw Ridge
956 | The Verdant Fields
976 | Gadgetzan
977 | Steamwheedle Port
978 | Zul'Farrak
979 | Sandsorrow Watch
980 | Thistleshrub Valley
981 | The Gaping Chasm
982 | The Noxious Lair
983 | Dunemaul Compound
984 | Eastmoon Ruins
985 | Waterspring Field
986 | Zalashji's Den
987 | Land's End Beach
988 | Wavestrider Beach
989 | Uldum
990 | Valley of the Watchers
991 | Gunstan's Post
992 | Southmoon Ruins
996 | Render's Camp
997 | Render's Valley
998 | Render's Rock
999 | Stonewatch Tower
1000 | Galardell Valley
1001 | Lakeridge Highway
1002 | Three Corners
1016 | Direforge Hill
1017 | Raptor Ridge
1018 | Black Channel Marsh
1019 | The Green Belt
1020 | Mosshide Fen
1021 | Thelgen Rock
1022 | Bluegill Marsh
1023 | Saltspray Glen
1024 | Sundown Marsh
1025 | The Green Belt
1036 | Angerfang Encampment
1037 | Grim Batol
1038 | Dragonmaw Gates
1039 | The Lost Fleet
1056 | Darrow Hill
1057 | Thoradin's Wall
1076 | Webwinder Path
1097 | The Hushed Bank
1098 | Manor Mistmantle
1099 | Camp Mojache
1100 | Grimtotem Compound
1101 | The Writhing Deep
1102 | Wildwind Lake
1103 | Gordunni Outpost
1104 | Mok'Gordun
1105 | Feral Scar Vale
1106 | Frayfeather Highlands
1107 | Idlewind Lake
1108 | The Forgotten Coast
1109 | East Pillar
1110 | West Pillar
1111 | Dream Bough
1112 | Jademir Lake
1113 | Oneiros
1114 | Ruins of Ravenwind
1115 | Rage Scar Hold
1116 | Feathermoon Stronghold
1117 | Ruins of Solarsal
1118 | Lower Wilds UNUSED
1119 | The Twin Colossals
1120 | Sardor Isle
1121 | Isle of Dread
1136 | High Wilderness
1137 | Lower Wilds
1156 | Southern Barrens
1157 | Southern Gold Road
1176 | Zul'Farrak
1196 | UNUSEDAlcaz Island
1216 | Timbermaw Hold
1217 | Vanndir Encampment
1218 | TESTAzshara
1219 | Legash Encampment
1220 | Thalassian Base Camp
1221 | Ruins of Eldarath
1222 | Hetaera's Clutch
1223 | Temple of Zin-Malor
1224 | Bear's Head
1225 | Ursolan
1226 | Temple of Arkkoran
1227 | Bay of Storms
1228 | The Shattered Strand
1229 | Tower of Eldara
1230 | Jagged Reef
1231 | Southridge Beach
1232 | Ravencrest Monument
1233 | Forlorn Ridge
1234 | Lake Mennar
1235 | Shadowsong Shrine
1236 | Haldarr Encampment
1237 | Valormok
1256 | The Ruined Reaches
1276 | The Talondeep Path
1277 | The Talondeep Path
1296 | Rocktusk Farm
1297 | Jaggedswine Farm
1316 | Razorfen Downs
1336 | Lost Rigger Cove
1337 | Uldaman
1338 | Lordamere Lake
1339 | Lordamere Lake
1357 | Gallows' Corner
1377 | Silithus
1397 | Emerald Forest
1417 | Sunken Temple
1437 | Dreadmaul Hold
1438 | Nethergarde Keep
1439 | Dreadmaul Post
1440 | Serpent's Coil
1441 | Altar of Storms
1442 | Firewatch Ridge
1443 | The Slag Pit
1444 | The Sea of Cinders
1445 | Blackrock Mountain
1446 | Thorium Point
1457 | Garrison Armory
1477 | The Temple of Atal'Hakkar
1497 | Undercity
1517 | Uldaman
1518 | Not Used Deadmines
1519 | Stormwind City
1537 | Ironforge
1557 | Splithoof Hold
1577 | The Cape of Stranglethorn
1578 | Southern Savage Coast
1579 | Unused The Deadmines 002
1580 | Unused Ironclad Cove 003
1581 | The Deadmines
1582 | Ironclad Cove
1583 | Blackrock Spire
1584 | Blackrock Depths
1597 | Raptor Grounds UNUSED
1598 | Grol'dom Farm UNUSED
1599 | Mor'shan Base Camp
1600 | Honor's Stand UNUSED
1601 | Blackthorn Ridge UNUSED
1602 | Bramblescar UNUSED
1603 | Agama'gor UNUSED
1617 | Valley of Heroes
1637 | Orgrimmar
1638 | Thunder Bluff
1639 | Elder Rise
1640 | Spirit Rise
1641 | Hunter Rise
1657 | Darnassus
1658 | Cenarion Enclave
1659 | Craftsmen's Terrace
1660 | Warrior's Terrace
1661 | The Temple Gardens
1662 | Tradesmen's Terrace
1677 | Gavin's Naze
1678 | Sofera's Naze
1679 | Corrahn's Dagger
1680 | The Headland
1681 | Misty Shore
1682 | Dandred's Fold
1683 | Growless Cave
1684 | Chillwind Point
1697 | Raptor Grounds
1698 | Bramblescar
1699 | Thorn Hill
1700 | Agama'gor
1701 | Blackthorn Ridge
1702 | Honor's Stand
1703 | The Mor'shan Rampart
1704 | Grol'dom Farm
1717 | Razorfen Kraul
1718 | The Great Lift
1737 | Mistvale Valley
1738 | Nek'mani Wellspring
1739 | Bloodsail Compound
1740 | Venture Co. Base Camp
1741 | Gurubashi Arena
1742 | Spirit Den
1757 | The Crimson Veil
1758 | The Riptide
1759 | The Damsel's Luck
1760 | Venture Co. Operations Center
1761 | Deadwood Village
1762 | Felpaw Village
1763 | Jaedenar
1764 | Bloodvenom River
1765 | Bloodvenom Falls
1766 | Shatter Scar Vale
1767 | Irontree Woods
1768 | Irontree Cavern
1769 | Timbermaw Hold
1770 | Shadow Hold
1771 | Shrine of the Deceiver
1777 | Itharius's Cave
1778 | Sorrowmurk
1779 | Draenil'dur Village
1780 | Splinterspear Junction
1797 | Stagalbog
1798 | The Shifting Mire
1817 | Stagalbog Cave
1837 | Witherbark Caverns
1857 | Thoradin's Wall
1858 | Boulder'gor
1877 | Valley of Fangs
1878 | The Dustbowl
1879 | Mirage Flats
1880 | Featherbeard's Hovel
1881 | Shindigger's Camp
1882 | Plaguemist Ravine
1883 | Valorwind Lake
1884 | Agol'watha
1885 | Hiri'watha
1886 | The Creeping Ruin
1887 | Bogen's Ledge
1897 | The Maker's Terrace
1898 | Dustwind Gulch
1917 | Shaol'watha
1937 | Noonshade Ruins
1938 | Broken Pillar
1939 | Abyssal Sands
1940 | Southbreak Shore
1941 | Caverns of Time
1942 | The Marshlands
1943 | Ironstone Plateau
1957 | Blackchar Cave
1958 | Tanner Camp
1959 | Dustfire Valley
1977 | Zul'Gurub
1978 | Misty Reed Post
1997 | Bloodvenom Post
1998 | Talonbranch Glade
2017 | Stratholme
2037 | Quel'thalas
2057 | Scholomance
2077 | Twilight Vale
2078 | Twilight Shore
2079 | Alcaz Island
2097 | Darkcloud Pinnacle
2098 | Dawning Wood Catacombs
2099 | Stonewatch Keep
2100 | Maraudon
2101 | Stoutlager Inn
2102 | Thunderbrew Distillery
2103 | Menethil Keep
2104 | Deepwater Tavern
2117 | Shadow Grave
2118 | Brill Town Hall
2119 | Gallows' End Tavern
2137 | The Pools of VisionUNUSED
2138 | Dreadmist Den
2157 | Bael'dun Keep
2158 | Emberstrife's Den
2159 | Onyxia's Lair
2160 | Windshear Mine
2161 | Roland's Doom
2177 | Battle Ring
2197 | The Pools of Vision
2198 | Shadowbreak Ravine
2217 | Broken Spear Village
2237 | Whitereach Post
2238 | Gornia
2239 | Zane's Eye Crater
2240 | Mirage Raceway
2241 | Frostsaber Rock
2242 | The Hidden Grove
2243 | Timbermaw Post
2244 | Winterfall Village
2245 | Mazthoril
2246 | Frostfire Hot Springs
2247 | Ice Thistle Hills
2248 | Dun Mandarr
2249 | Frostwhisper Gorge
2250 | Owl Wing Thicket
2251 | Lake Kel'Theril
2252 | The Ruins of Kel'Theril
2253 | Starfall Village
2254 | Ban'Thallow Barrow Den
2255 | Everlook
2256 | Darkwhisper Gorge
2257 | Deeprun Tram
2258 | The Fungal Vale
2259 | UNUSEDThe Marris Stead
2260 | The Marris Stead
2261 | The Undercroft
2262 | Darrowshire
2263 | Crown Guard Tower
2264 | Corin's Crossing
2265 | Scarlet Base Camp
2266 | Tyr's Hand
2267 | The Scarlet Basilica
2268 | Light's Hope Chapel
2269 | Browman Mill
2270 | The Noxious Glade
2271 | Eastwall Tower
2272 | Northdale
2273 | Zul'Mashar
2274 | Mazra'Alor
2275 | Northpass Tower
2276 | Quel'Lithien Lodge
2277 | Plaguewood
2278 | Scourgehold
2279 | Stratholme
2280 | UNUSED Stratholme
2297 | Darrowmere Lake
2298 | Caer Darrow
2299 | Darrowmere Lake
2300 | Caverns of Time
2301 | Thistlefur Village
2302 | The Quagmire
2303 | Windbreak Canyon
2317 | South Seas
2318 | The Great Sea
2319 | The Great Sea
2320 | The Great Sea
2321 | The Great Sea
2322 | The Veiled Sea
2323 | The Veiled Sea
2324 | The Veiled Sea
2325 | The Veiled Sea
2326 | The Veiled Sea
2337 | Razor Hill Barracks
2338 | South Seas
2339 | The Great Sea
2357 | Bloodtooth Camp
2358 | Forest Song
2359 | Greenpaw Village
2360 | Silverwing Outpost
2361 | Nighthaven
2362 | Shrine of Remulos
2363 | Stormrage Barrow Dens
2364 | The Great Sea
2365 | The Great Sea
2366 | The Black Morass
2367 | Old Hillsbrad Foothills
2368 | Tarren Mill
2369 | Southshore
2370 | Durnholde Keep
2371 | Dun Garok
2372 | Hillsbrad Fields
2373 | Eastern Strand
2374 | Nethander Stead
2375 | Darrow Hill
2376 | Southpoint Tower
2377 | Thoradin's Wall
2378 | Western Strand
2379 | Azurelode Mine
2397 | The Great Sea
2398 | The Great Sea
2399 | The Great Sea
2400 | The Forbidding Sea
2401 | The Forbidding Sea
2402 | The Forbidding Sea
2403 | The Forbidding Sea
2404 | Tethris Aran
2405 | Ethel Rethor
2406 | Ranazjar Isle
2407 | Kormek's Hut
2408 | Shadowprey Village
2417 | Blackrock Pass
2418 | Morgan's Vigil
2419 | Slither Rock
2420 | Terror Wing Path
2421 | Draco'dar
2437 | Ragefire Chasm
2457 | Nightsong Woods
2477 | The Veiled Sea
2478 | Morlos'Aran
2479 | Emerald Sanctuary
2480 | Jadefire Glen
2481 | Ruins of Constellas
2497 | Bitter Reaches
2517 | Rise of the Defiler
2518 | Lariss Pavilion
2519 | Woodpaw Hills
2520 | Woodpaw Den
2521 | Verdantis River
2522 | Ruins of Isildien
2537 | Grimtotem Post
2538 | Camp Aparaje
2539 | Malaka'jin
2540 | Boulderslide Ravine
2541 | Sishir Canyon
2557 | Dire Maul
2558 | Deadwind Ravine
2559 | Diamondhead River
2560 | Ariden's Camp
2561 | The Vice
2562 | Karazhan
2563 | Morgan's Plot
2577 | Dire Maul
2597 | Alterac Valley
2617 | Scrabblescrew's Camp
2618 | Jadefire Run
2619 | Thondroril River
2620 | Thondroril River
2621 | Lake Mereldar
2622 | Pestilent Scar
2623 | The Infectis Scar
2624 | Blackwood Lake
2625 | Eastwall Gate
2626 | Terrorweb Tunnel
2627 | Terrordale
2637 | Kargathia Keep
2657 | Valley of Bones
2677 | Blackwing Lair
2697 | Deadman's Crossing
2717 | Molten Core
2737 | The Scarab Wall
2738 | Southwind Village
2739 | Twilight Base Camp
2740 | The Crystal Vale
2741 | The Scarab Dais
2742 | Hive'Ashi
2743 | Hive'Zora
2744 | Hive'Regal
2757 | Shrine of the Fallen Warrior
2777 | UNUSED Alterac Valley
2797 | Blackfathom Deeps
2817 | Reuse Me 4
2837 | The Master's Cellar
2838 | Stonewrought Pass
2839 | Alterac Valley
2857 | The Rumble Cage
2877 | Chunk Test
2897 | Zoram'gar Outpost
2917 | Hall of Legends
2918 | Champions' Hall
2937 | Grosh'gok Compound
2938 | Sleeping Gorge
2957 | Irondeep Mine
2958 | Stonehearth Outpost
2959 | Dun Baldar
2960 | Icewing Pass
2961 | Frostwolf Village
2962 | Tower Point
2963 | Coldtooth Mine
2964 | Winterax Hold
2977 | Iceblood Garrison
2978 | Frostwolf Keep
2979 | Tor'kren Farm
3017 | Frost Dagger Pass
3037 | Ironstone Camp
3038 | Weazel's Crater
3039 | Tahonda Ruins
3057 | Field of Strife
3058 | Icewing Cavern
3077 | Valor's Rest
3097 | The Swarming Pillar
3098 | Twilight Post
3099 | Twilight Outpost
3100 | Ravaged Twilight Camp
3117 | Shalzaru's Lair
3137 | Talrendis Point
3138 | Rethress Sanctum
3139 | Moon Horror Den
3140 | Scalebeard's Cave
3157 | Boulderslide Cavern
3177 | Warsong Labor Camp
3197 | Chillwind Camp
3217 | The Maul
3237 | The Maul UNUSED
3257 | Bones of Grakkarond
3277 | Warsong Gulch
3297 | Frostwolf Graveyard
3298 | Frostwolf Pass
3299 | Dun Baldar Pass
3300 | Iceblood Graveyard
3301 | Snowfall Graveyard
3302 | Stonehearth Graveyard
3303 | Stormpike Graveyard
3304 | Icewing Bunker
3305 | Stonehearth Bunker
3306 | Wildpaw Ridge
3317 | Revantusk Village
3318 | Rock of Durotan
3319 | Silverwing Grove
3320 | Warsong Lumber Mill
3321 | Silverwing Hold
3337 | Wildpaw Cavern
3338 | The Veiled Cleft
3357 | Yojamba Isle
3358 | Arathi Basin
3377 | The Coil
3378 | Altar of Hir'eek
3379 | Shadra'zaar
3380 | Hakkari Grounds
3381 | Naze of Shirvallah
3382 | Temple of Bethekk
3383 | The Bloodfire Pit
3384 | Altar of the Blood God
3397 | Zanza's Rise
3398 | Edge of Madness
3417 | Trollbane Hall
3418 | Defiler's Den
3419 | Pagle's Pointe
3420 | Farm
3421 | Blacksmith
3422 | Lumber Mill
3423 | Gold Mine
3424 | Stables
3425 | Cenarion Hold
3426 | Staghelm Point
3427 | Bronzebeard Encampment
3428 | Ahn'Qiraj
3429 | Ruins of Ahn'Qiraj
3430 | Eversong Woods
3431 | Sunstrider Isle
3432 | Shrine of Dath'Remar
3433 | Ghostlands
3434 | Scarab Terrace
3435 | General's Terrace
3436 | The Reservoir
3437 | The Hatchery
3438 | The Comb
3439 | Watchers' Terrace
3440 | Scarab Terrace
3441 | General's Terrace
3442 | The Reservoir
3443 | The Hatchery
3444 | The Comb
3445 | Watchers' Terrace
3446 | Twilight's Run
3447 | Ortell's Hideout
3448 | Scarab Terrace
3449 | General's Terrace
3450 | The Reservoir
3451 | The Hatchery
3452 | The Comb
3453 | Watchers' Terrace
3454 | Ruins of Ahn'Qiraj
3455 | The North Sea
3456 | Naxxramas
3457 | Karazhan
3459 | City
3460 | Golden Strand
3461 | Sunsail Anchorage
3462 | Fairbreeze Village
3463 | Magisters Gate
3464 | Farstrider Retreat
3465 | North Sanctum
3466 | West Sanctum
3467 | East Sanctum
3468 | Saltheril's Haven
3469 | Thuron's Livery
3470 | Stillwhisper Pond
3471 | The Living Wood
3472 | Azurebreeze Coast
3473 | Lake Elrendar
3474 | The Scorched Grove
3475 | Zeb'Watha
3476 | Tor'Watha
3477 | Karazhan *UNUSED*
3478 | Gates of Ahn'Qiraj
3479 | The Veiled Sea
3480 | Duskwither Grounds
3481 | Duskwither Spire
3482 | The Dead Scar
3483 | Hellfire Peninsula
3484 | The Sunspire
3485 | Falthrien Academy
3486 | Ravenholdt Manor
3487 | Silvermoon City
3488 | Tranquillien
3489 | Suncrown Village
3490 | Goldenmist Village
3491 | Windrunner Village
3492 | Windrunner Spire
3493 | Sanctum of the Sun
3494 | Sanctum of the Moon
3495 | Dawnstar Spire
3496 | Farstrider Enclave
3497 | An'daroth
3498 | An'telas
3499 | An'owyn
3500 | Deatholme
3501 | Bleeding Ziggurat
3502 | Howling Ziggurat
3503 | Shalandis Isle
3504 | Toryl Estate
3505 | Underlight Mines
3506 | Andilien Estate
3507 | Hatchet Hills
3508 | Amani Pass
3509 | Sungraze Peak
3510 | Amani Catacombs
3511 | Tower of the Damned
3512 | Zeb'Sora
3513 | Lake Elrendar
3514 | The Dead Scar
3515 | Elrendar River
3516 | Zeb'Tela
3517 | Zeb'Nowa
3518 | Nagrand
3519 | Terokkar Forest
3520 | Shadowmoon Valley
3521 | Zangarmarsh
3522 | Blade's Edge Mountains
3523 | Netherstorm
3524 | Azuremyst Isle
3525 | Bloodmyst Isle
3526 | Ammen Vale
3527 | Crash Site
3528 | Silverline Lake
3529 | Nestlewood Thicket
3530 | Shadow Ridge
3531 | Skulking Row
3532 | Dawning Lane
3533 | Ruins of Silvermoon
3534 | Feth's Way
3535 | Hellfire Citadel
3536 | Thrallmar
3537 | REUSE
3538 | Honor Hold
3539 | The Stair of Destiny
3540 | Twisting Nether
3541 | Forge Camp: Mageddon
3542 | The Path of Glory
3543 | The Great Fissure
3544 | Plain of Shards
3545 | Hellfire Citadel
3546 | Expedition Armory
3547 | Throne of Kil'jaeden
3548 | Forge Camp: Rage
3549 | Invasion Point: Annihilator
3550 | Borune Ruins
3551 | Ruins of Sha'naar
3552 | Temple of Telhamat
3553 | Pools of Aggonar
3554 | Falcon Watch
3555 | Mag'har Post
3556 | Den of Haal'esh
3557 | The Exodar
3558 | Elrendar Falls
3559 | Nestlewood Hills
3560 | Ammen Fields
3561 | The Sacred Grove
3562 | Hellfire Ramparts
3563 | Hellfire Citadel
3564 | Emberglade
3565 | Cenarion Refuge
3566 | Moonwing Den
3567 | Pod Cluster
3568 | Pod Wreckage
3569 | Tides' Hollow
3570 | Wrathscale Point
3571 | Bristlelimb Village
3572 | Stillpine Hold
3573 | Odesyus' Landing
3574 | Valaar's Berth
3575 | Silting Shore
3576 | Azure Watch
3577 | Geezle's Camp
3578 | Menagerie Wreckage
3579 | Traitor's Cove
3580 | Wildwind Peak
3581 | Wildwind Path
3582 | Zeth'Gor
3583 | Beryl Coast
3584 | Blood Watch
3585 | Bladewood
3586 | The Vector Coil
3587 | The Warp Piston
3588 | The Cryo-Core
3589 | The Crimson Reach
3590 | Wrathscale Lair
3591 | Ruins of Loreth'Aran
3592 | Nazzivian
3593 | Axxarien
3594 | Blacksilt Shore
3595 | The Foul Pool
3596 | The Hidden Reef
3597 | Amberweb Pass
3598 | Wyrmscar Island
3599 | Talon Stand
3600 | Bristlelimb Enclave
3601 | Ragefeather Ridge
3602 | Kessel's Crossing
3603 | Tel'athion's Camp
3604 | The Bloodcursed Reef
3605 | Hyjal Past
3606 | Hyjal Summit
3607 | Serpentshrine Cavern
3608 | Vindicator's Rest
3609 | Unused3
3610 | Burning Blade Ruins
3611 | Clan Watch
3612 | Bloodcurse Isle
3613 | Garadar
3614 | Skysong Lake
3615 | Throne of the Elements
3616 | Laughing Skull Ruins
3617 | Warmaul Hill
3618 | Gruul's Lair
3619 | Auren Ridge
3620 | Auren Falls
3621 | Lake Sunspring
3622 | Sunspring Post
3623 | Aeris Landing
3624 | Forge Camp: Fear
3625 | Forge Camp: Hate
3626 | Telaar
3627 | Northwind Cleft
3628 | Halaa
3629 | Southwind Cleft
3630 | Oshu'gun
3631 | Spirit Fields
3632 | Shamanar
3633 | Ancestral Grounds
3634 | Windyreed Village
3635 | Unused2
3636 | Elemental Plateau
3637 | Kil'sorrow Fortress
3638 | The Ring of Trials
3639 | Silvermyst Isle
3640 | Daggerfen Village
3641 | Umbrafen Village
3642 | Feralfen Village
3643 | Bloodscale Enclave
3644 | Telredor
3645 | Zabra'jin
3646 | Quagg Ridge
3647 | The Spawning Glen
3648 | The Dead Mire
3649 | Sporeggar
3650 | Ango'rosh Grounds
3651 | Ango'rosh Stronghold
3652 | Funggor Cavern
3653 | Serpent Lake
3654 | The Drain
3655 | Umbrafen Lake
3656 | Marshlight Lake
3657 | Portal Clearing
3658 | Sporewind Lake
3659 | The Lagoon
3660 | Blades' Run
3661 | Blade Tooth Canyon
3662 | Commons Hall
3663 | Derelict Manor
3664 | Huntress of the Sun
3665 | Falconwing Square
3666 | Halaani Basin
3667 | Hewn Bog
3668 | Boha'mu Ruins
3669 | The Stadium
3670 | The Overlook
3671 | Broken Hill
3672 | Mag'hari Procession
3673 | Nesingwary Safari
3674 | Cenarion Thicket
3675 | Tuurem
3676 | Veil Shienor
3677 | Veil Skith
3678 | Veil Shalas
3679 | Skettis
3680 | Blackwind Valley
3681 | Firewing Point
3682 | Grangol'var Village
3683 | Stonebreaker Hold
3684 | Allerian Stronghold
3685 | Bonechewer Ruins
3686 | Veil Lithic
3687 | Olembas
3688 | Auchindoun
3689 | Veil Reskk
3690 | Blackwind Lake
3691 | Lake Ere'Noru
3692 | Lake Jorune
3693 | Skethyl Mountains
3694 | Misty Ridge
3695 | The Broken Hills
3696 | The Barrier Hills
3697 | The Bone Wastes
3698 | Nagrand Arena
3699 | Laughing Skull Courtyard
3700 | The Ring of Blood
3701 | Arena Floor
3702 | Blade's Edge Arena
3703 | Shattrath City
3704 | The Shepherd's Gate
3705 | Telaari Basin
3706 | The Dark Portal
3707 | Alliance Base
3708 | Horde Encampment
3709 | Night Elf Village
3710 | Nordrassil
3711 | Reuse Me
3712 | Area 52
3713 | The Blood Furnace
3714 | The Shattered Halls
3715 | The Steamvault
3716 | The Underbog
3717 | The Slave Pens
3718 | Swamprat Post
3719 | Bleeding Hollow Ruins
3720 | Twin Spire Ruins
3721 | The Crumbling Waste
3722 | Manaforge Ara
3723 | Arklon Ruins
3724 | Cosmowrench
3725 | Ruins of Enkaat
3726 | Manaforge B'naar
3727 | The Scrap Field
3728 | The Vortex Fields
3729 | The Heap
3730 | Manaforge Coruu
3731 | The Tempest Rift
3732 | Kirin'Var Village
3733 | The Violet Tower
3734 | Manaforge Duro
3735 | Voidwind Plateau
3736 | Manaforge Ultris
3737 | Celestial Ridge
3738 | The Stormspire
3739 | Forge Base: Oblivion
3740 | Forge Base: Gehenna
3741 | Ruins of Farahlon
3742 | Socrethar's Seat
3743 | Legion Hold
3744 | Shadowmoon Village
3745 | Wildhammer Stronghold
3746 | The Hand of Gul'dan
3747 | The Fel Pits
3748 | The Deathforge
3749 | Coilskar Cistern
3750 | Coilskar Point
3751 | Sunfire Point
3752 | Illidari Point
3753 | Ruins of Baa'ri
3754 | Altar of Sha'tar
3755 | The Stair of Doom
3756 | Ruins of Karabor
3757 | Ata'mal Terrace
3758 | Netherwing Fields
3759 | Netherwing Ledge
3760 | The Barrier Hills
3761 | The High Path
3762 | Windyreed Pass
3763 | Zangar Ridge
3764 | The Twilight Ridge
3765 | Razorthorn Trail
3766 | Orebor Harborage
3767 | Blades' Run
3768 | Jagged Ridge
3769 | Thunderlord Stronghold
3770 | Blade Tooth Canyon
3771 | The Living Grove
3772 | Sylvanaar
3773 | Bladespire Hold
3774 | Gruul's Lair
3775 | Circle of Blood
3776 | Bloodmaul Outpost
3777 | Bloodmaul Camp
3778 | Draenethyst Mine
3779 | Trogma's Claim
3780 | Blackwing Coven
3781 | Grishnath
3782 | Veil Lashh
3783 | Veil Vekh
3784 | Forge Camp: Terror
3785 | Forge Camp: Wrath
3786 | Ogri'la
3787 | Forge Camp: Anger
3788 | The Low Path
3789 | Shadow Labyrinth
3790 | Auchenai Crypts
3791 | Sethekk Halls
3792 | Mana-Tombs
3793 | Felspark Ravine
3794 | Valley of Bones
3795 | Sha'naari Wastes
3796 | The Warp Fields
3797 | Fallen Sky Ridge
3798 | Haal'eshi Gorge
3799 | Stonewall Canyon
3800 | Thornfang Hill
3801 | Mag'har Grounds
3802 | Void Ridge
3803 | The Abyssal Shelf
3804 | The Legion Front
3805 | Zul'Aman
3806 | Supply Caravan
3807 | Reaver's Fall
3808 | Cenarion Post
3809 | Southern Rampart
3810 | Northern Rampart
3811 | Gor'gaz Outpost
3812 | Spinebreaker Post
3813 | The Path of Anguish
3814 | East Supply Caravan
3815 | Expedition Point
3816 | Zeppelin Crash
3817 | Testing
3818 | Bloodscale Grounds
3819 | Darkcrest Enclave
3820 | Eye of the Storm
3821 | Warden's Cage
3822 | Eclipse Point
3823 | Isle of Tribulations
3824 | Bloodmaul Ravine
3825 | Dragons' End
3826 | Daggermaw Canyon
3827 | Vekhaar Stand
3828 | Ruuan Weald
3829 | Veil Ruuan
3830 | Raven's Wood
3831 | Death's Door
3832 | Vortex Pinnacle
3833 | Razor Ridge
3834 | Ridge of Madness
3835 | Dustquill Ravine
3836 | Magtheridon's Lair
3837 | Sunfury Hold
3838 | Spinebreaker Mountains
3839 | Abandoned Armory
3840 | The Black Temple
3841 | Darkcrest Shore
3842 | Tempest Keep
3844 | Mok'Nathal Village
3845 | Tempest Keep
3846 | The Arcatraz
3847 | The Botanica
3848 | The Arcatraz
3849 | The Mechanar
3850 | Netherstone
3851 | Midrealm Post
3852 | Tuluman's Landing
3854 | Protectorate Watch Post
3855 | Circle of Blood Arena
3856 | Elrendar Crossing
3857 | Ammen Ford
3858 | Razorthorn Shelf
3859 | Silmyr Lake
3860 | Raastok Glade
3861 | Thalassian Pass
3862 | Churning Gulch
3863 | Broken Wilds
3864 | Bash'ir Landing
3865 | Crystal Spine
3866 | Skald
3867 | Bladed Gulch
3868 | Gyro-Plank Bridge
3869 | Mage Tower
3870 | Blood Elf Tower
3871 | Draenei Ruins
3872 | Fel Reaver Ruins
3873 | The Proving Grounds
3874 | Eco-Dome Farfield
3875 | Eco-Dome Skyperch
3876 | Eco-Dome Sutheron
3877 | Eco-Dome Midrealm
3878 | Ethereum Staging Grounds
3879 | Chapel Yard
3880 | Access Shaft Zeon
3881 | Trelleum Mine
3882 | Invasion Point: Destroyer
3883 | Camp of Boom
3884 | Spinebreaker Pass
3885 | Netherweb Ridge
3886 | Derelict Caravan
3887 | Refugee Caravan
3888 | Shadow Tomb
3889 | Veil Rhaze
3890 | Tomb of Lights
3891 | Carrion Hill
3892 | Writhing Mound
3893 | Ring of Observance
3894 | Auchenai Grounds
3895 | Cenarion Watchpost
3896 | Aldor Rise
3897 | Terrace of Light
3898 | Scryer's Tier
3899 | Lower City
3900 | Invasion Point: Overlord
3901 | Allerian Post
3902 | Stonebreaker Camp
3903 | Boulder'mok
3904 | Cursed Hollow
3905 | Coilfang Reservoir
3906 | The Bloodwash
3907 | Veridian Point
3908 | Middenvale
3909 | The Lost Fold
3910 | Mystwood
3911 | Tranquil Shore
3912 | Goldenbough Pass
3913 | Runestone Falithas
3914 | Runestone Shan'dor
3915 | Fairbridge Strand
3916 | Moongraze Woods
3917 | Auchindoun
3918 | Toshley's Station
3919 | Singing Ridge
3920 | Shatter Point
3921 | Arklonis Ridge
3922 | Bladespire Outpost
3923 | Gruul's Lair
3924 | Northmaul Tower
3925 | Southmaul Tower
3926 | Shattered Plains
3927 | Oronok's Farm
3928 | The Altar of Damnation
3929 | The Path of Conquest
3930 | Eclipsion Fields
3931 | Bladespire Grounds
3932 | Sketh'lon Base Camp
3933 | Sketh'lon Wreckage
3934 | Town Square
3935 | Wizard Row
3936 | Deathforge Tower
3937 | Slag Watch
3938 | Sanctum of the Stars
3939 | Dragonmaw Fortress
3940 | The Fetid Pool
3941 | Test
3942 | Razaan's Landing
3943 | Invasion Point: Cataclysm
3944 | The Altar of Shadows
3945 | Netherwing Pass
3946 | Wayne's Refuge
3947 | The Scalding Pools
3948 | Brian and Pat Test
3949 | Magma Fields
3950 | Crimson Watch
3951 | Evergrove
3952 | Wyrmskull Bridge
3953 | Scalewing Shelf
3954 | Wyrmskull Tunnel
3955 | Hellfire Basin
3956 | The Shadow Stair
3957 | Sha'tari Outpost
3958 | Sha'tari Base Camp
3959 | Black Temple
3960 | Soulgrinder's Barrow
3961 | Sorrow Wing Point
3962 | Vim'gol's Circle
3963 | Dragonspine Ridge
3964 | Skyguard Outpost
3965 | Netherwing Mines
3966 | Dragonmaw Base Camp
3967 | Dragonmaw Skyway
3968 | Ruins of Lordaeron
3969 | Rivendark's Perch
3970 | Obsidia's Perch
3971 | Insidion's Perch
3972 | Furywing's Perch
3973 | Blackwind Landing
3974 | Veil Harr'ik
3975 | Terokk's Rest
3976 | Veil Ala'rak
3977 | Upper Veil Shil'ak
3978 | Lower Veil Shil'ak
4008 | Shartuul's Transporter
4009 | Illidari Training Grounds
4010 | Mudsprocket
4046 | Direhorn Post
4047 | Nat's Landing
4049 | Tabetha's Farm
4067 | Plaguewood Tower
4075 | Sunwell Plateau
4076 | Reuse Me 7
4078 | Razorthorn Rise
4080 | Isle of Quel'Danas
4081 | The Dawnchaser
4082 | The Sin'loren
4083 | Silvermoon's Pride
4084 | The Bloodoath
4085 | Shattered Sun Staging Area
4086 | Sun's Reach Sanctum
4087 | Sun's Reach Harbor
4088 | Sun's Reach Armory
4089 | Dawnstar Village
4090 | The Dawning Square
4091 | Greengill Coast
4092 | The Dead Scar
4093 | The Sun Forge
4094 | Sunwell Plateau
4095 | Magisters' Terrace
4131 | Magisters' Terrace
4139 | Parhelion Plaza
4140 | The Dead Scar


AreaTrigger.dbc

AreaTrigger.dbc

Для версии: 2.4.2

Описание

Фиксированые точки базы, которые для чего-то нужны. Например входы в инст и т.п., если радиус = 0 то триггер это портал в точку с кординатами target_?

Структура

entry

Уникальный номер Ареа триггера.

map_id

Номер карты, в которой он расположен.

trigger_x

Кордината x.

trigger_y

Кордината y.

trigger_z

Кордината z.

radius

Радиус действия триггера, для телепортов = 0.

target_x

Кордината цели x.

target_y

Ккордината цели y.

target_z

Кордината цели z.

target_O

Ориентация относительно севера.


BattlemasterList.dbc

BattlemasterList.dbc

Для версии: 2.4.2

Описание

Таблица, хранит в себе набор данных определяющих баттлграунды и арены.

Структура

Столбец | Поле | Тип | Описание
1 | ID | Integer | Уникальный идентификатор
2 | MapID_1 | Integer | ID карты
3 | MapID_2 | Integer | ID карты 2
4 | MapID_3 | Integer | ID карты 3
5 | MapID_4 | Integer | NULL
6 | MapID_5 | Integer | NULL
7 | MapID_6 | Integer | NULL
8 | MapID_7 | Integer | NULL
9 | MapID_8 | Integer | NULL
10 | Type | Integer | = 3 -баттлграунд, 4 -арена
11 | MinLvl | Integer | Минимальный уровень
12 | MaxLvl | Integer | Максимальный уровень
13 | MaxPlayersPerTeam | Integer | Максимальное кол-во игроков в команде
14 | ??? | Integer | = 10 для баттлграундов, 5 для арен, 9 -??
15 | AltTitle? | String | = Alterac Valley
16 | Title | String | Название

Данные

ID | MapID_1 | MapID_2 | MapID_3 | Type | MinLvl | MaxLvl | MaxPlayersPerTeam | Column #14 | Title_1
1 | 30 | 0 | 0 | 3 | 51 | 70 | 40 | 10 | Alterac Valley
2 | 489 | 0 | 0 | 3 | 10 | 70 | 10 | 10 | Warsong Gulch
3 | 529 | 0 | 0 | 3 | 20 | 70 | 15 | 10 | Arathi Basin
4 | 559 | 0 | 0 | 4 | 10 | 70 | 5 | 5 | Nagrand Arena
5 | 562 | 0 | 0 | 4 | 10 | 70 | 5 | 5 | Blade's Edge Arena
6 | 559 | 562 | 572 | 4 | 10 | 70 | 5 | 5 | All Arenas
7 | 566 | 0 | 0 | 3 | 61 | 70 | 15 | 9 | Eye of the Storm
8 | 572 | 0 | 0 | 4 | 10 | 70 | 5 | 5 | Ruins of Lordaeron


ChrClasses.dbc

ChrClasses.dbc

Для версии: 3.0.3

Описание

Это dbc содержит все возможные классы игроков.

ID | Name | Internal Name
1 | Warrior | WARRIOR
2 | Paladin | PALADIN
3 | Hunter | HUNTER
4 | Rogue | ROGUE
5 | Priest | PRIEST
6 | Death Knight | DEATH KNIGHT
7 | Shaman | SHAMAN
8 | Mage | MAGE
9 | Warlock | WARLOCK
11 | Druid | DRUID


ChrRaces.dbc

ChrRaces.dbc

Для версии: 2.4.2

Описание

Информация о всех возможных расах, некоторые не доступны для игроков но определяются.

ID | Short Name | Internal Name | Name
1 | Hu | Human | Human
2 | Or | Orc | Orc
3 | Dw | Dwarf | Dwarf
4 | Ni | NightElf | Night Elf
5 | Sc | Scourge | Undead
6 | Ta | Tauren | Tauren
7 | Gn | Gnome | Gnome
8 | Tr | Troll | Troll
9 | Go | Goblin | Goblin
10 | Be | BloodElf | Blood Elf
11 | Dr | Draenei | Draenei
12 | Fo | FelOrc | Fel Orc
13 | Na | Naga_ | Naga
14 | Br | Broken | Broken
15 | Sk | Skeleton | Skeleton
18 | Ft | ForestTroll | Forest Troll


Faction.dbc

Faction.dbc

Для версии: 2.4.2

1 | PLAYER, Human
2 | PLAYER, Orc
3 | PLAYER, Dwarf
4 | PLAYER, Night Elf
5 | PLAYER, Undead
6 | PLAYER, Tauren
7 | Creature
8 | PLAYER, Gnome
9 | PLAYER, Troll
14 | Monster
15 | Defias Brotherhood
16 | Gnoll - Riverpaw
17 | Gnoll - Redridge
18 | Gnoll - Shadowhide
19 | Murloc
20 | Undead, Scourge
21 | Booty Bay | This booming coastal city is run by Baron Revilgaz of the Blackwater Raiders. Mortal enemies of the Bloodsail Buccaneers and part of the Steamwheedle Cartel.
22 | Beast - Spider
23 | Beast - Boar
24 | Worgen
25 | Kobold
26 | Troll, Bloodscalp
27 | Troll, Skullsplitter
28 | Prey
29 | Beast - Wolf
30 | Defias Brotherhood Traitor
31 | Friendly
32 | Trogg
33 | Troll, Frostmane
34 | Orc, Blackrock
35 | Villian
36 | Victim
37 | Beast - Bear
38 | Ogre
39 | Kurzen's Mercenaries
40 | Escortee
41 | Venture Company
42 | Beast - Raptor
43 | Basilisk
44 | Dragonflight, Green
45 | Lost Ones
46 | Blacksmithing - Armorsmithing
47 | Ironforge | This Alliance capital is the pride of the Dun Morogh dwarves. Home to King Magni.
48 | Dark Iron Dwarves
49 | Human, Night Watch
50 | Dragonflight, Red
51 | Gnoll - Mosshide
52 | Orc, Dragonmaw
53 | Gnome - Leper
54 | Gnomeregan Exiles | The former denizens of Gnomeregan, now living in exile in Ironforge and in league with the Alliance.
55 | Leopard
56 | Scarlet Crusade
57 | Gnoll - Rothide
58 | Beast - Gorilla
59 | Thorium Brotherhood | The dwarves of the Thorium Brotherhood epitomize excellence in craftsmanship and are bent on unlocking the secrets of Blackrock Mountain.
60 | Naga
61 | Dalaran
62 | Forlorn Spirit
63 | Darkhowl
64 | Grell
65 | Furbolg
66 | Horde Generic
67 | Horde
68 | Undercity | Led by Sylvanas Windrunner, the Forsaken have joined a tenuous alliance with the Horde and established this capital in the vast depths under the Ruins of Lordaeron.
69 | Darnassus | The Alliance capital is populated by Night Elves and is located in the Island of Teldrassil. Ruled by the Priestess of the Moon, Tyrande Whisperwind.
70 | Syndicate | A primarily human criminal organization that operates mostly out of the Alterac Mountains and Hillsbrad Foothills.
71 | Hillsbrad Militia
72 | Stormwind | One of the last bastions of human power, this Alliance capital is ruled by the child king, Anduin Wrynn.
73 | Demon
74 | Elemental
75 | Spirit
76 | Orgrimmar | Founded by Thrall, this Horde capital city is home to many of the proud orc clans of Durotar.
77 | Treasure
78 | Gnoll - Mudsnout
79 | HIllsbrad, Southshore Mayor
80 | Dragonflight, Black
81 | Thunder Bluff | Cairne Bloodhoof leads his people, the proud Tauren, from this mighty Horde capital.
82 | Troll, Witherbark
83 | Leatherworking - Elemental
84 | Quilboar, Razormane
85 | Quilboar, Bristleback
86 | Leatherworking - Dragonscale
87 | Bloodsail Buccaneers | These bloodthirsty corsairs are the bane of many a merchant in the high seas. Sworn enemies of Booty Bay.
88 | Blackfathom
89 | Makrura
90 | Centaur, Kolkar
91 | Centaur, Galak
92 | Gelkis Clan Centaur | These centaur have made their home in the southern region of Desolace. Mortal enemies of the Magram Centaur.
93 | Magram Clan Centaur | These centaur have made their home in the eastern region of Desolace. Mortal enemies of the Gelkis Centaur.
94 | Maraudine
108 | Theramore
109 | Quilboar, Razorfen
110 | Quilboar, Razormane 2
111 | Quilboar, Deathshead
128 | Enemy
148 | Ambient
168 | Nethergarde Caravan
169 | Steamwheedle Cartel
189 | Alliance Generic
209 | Nethergarde
229 | Wailing Caverns
249 | Silithid
269 | Silvermoon Remnant
270 | Zandalar Tribe | These trolls have come to Yojamba Isle in an effort to recruit help against the resurrected Blood God and his Atal'ai Priests in Zul'Gurub.
289 | Blacksmithing - Weaponsmithing
309 | Scorpid
310 | Beast - Bat
311 | Titan
329 | Taskmaster Fizzule
349 | Ravenholdt | This guild of thieves and assassins welcomes only those of extraordinary prowess into its fold. Sworn rivals of the Syndicate.
369 | Gadgetzan | Capital of the Steamwheedle Cartel and home to goblinhood's finest engineers, alchemists and merchants.
389 | Gnomeregan Bug
409 | Harpy
429 | Burning Blade
449 | Shadowsilk Poacher
450 | Searing Spider
469 | Alliance
470 | Ratchet | Part of the Steamwheedle Cartel, this goblin city provides a neutral haven for those that wish to trade goods and services in the Barrens.
471 | Wildhammer Clan | Though not a part of the Alliance, the dwarves of Aerie Peak have opened their doors to it and hold the Horde as enemies.
489 | Goblin, Dark Iron Bar Patron
509 | The League of Arathor | The League of Arathor seeks to reclaim lost land of Arathi Basin for their benefactors in Stormwind.
510 | The Defilers | The Defilers seek to claim Arathi Basin's valuable resources for the Horde.
511 | Giant
529 | Argent Dawn | An organization focused on protecting Azeroth from the threat of the Scourge. Strongholds of the Argent Dawn can be found in the Eastern and Western Plaguelands.
530 | Darkspear Trolls | This tribe of exiled trolls has joined forces with Thrall and the Horde. They now call Durotar their home, which they share with their orc allies.
531 | Dragonflight, Bronze
532 | Dragonflight, Blue
549 | Leatherworking - Tribal
550 | Engineering - Goblin
551 | Engineering - Gnome
569 | Blacksmithing - Hammersmithing
570 | Blacksmithing - Axesmithing
571 | Blacksmithing - Swordsmithing
572 | Troll, Vilebranch
573 | Southsea Freebooters
574 | Caer Darrow
575 | Furbolg, Uncorrupted
576 | Timbermaw Hold | As the last uncorrupted furbolg tribe, the Timbermaw seek to preserve their spiritual ways and end the suffering of their brethren.
577 | Everlook | This trading post is run by the goblins of the Steamwheedle Cartel and it sits in the crossroads of Winterspring's main trade routes.
589 | Wintersaber Trainers | This small group of reclusive night elves raises and trains wintersabers in the Winterspring area.
609 | Cenarion Circle | The druids of Cenarion Circle are guardians of nature and make their home in tranquil Moonglade.
629 | Shatterspear Trolls
630 | Ravasaur Trainers
649 | Majordomo Executus
669 | Beast - Carrion Bird
670 | Beast - Cat
671 | Beast - Crab
672 | Beast - Crocilisk
673 | Beast - Hyena
674 | Beast - Owl
675 | Beast - Scorpid
676 | Beast - Tallstrider
677 | Beast - Turtle
678 | Beast - Wind Serpent
679 | Training Dummy
689 | Dragonflight, Black - Bait
709 | Battleground Neutral
729 | Frostwolf Clan | The Frostwolf Clan seeks to drive out the dwarves of the Stormpike Expedition from Alterac Valley.
730 | Stormpike Guard | The Stormpike Dwarves have set up residence in Alterac Valley, where they're locked in battle with the Frostwolf Orcs.
749 | Hydraxian Waterlords | These elementals have made their home on the islands east of Azshara. Sworn enemies of the armies of Ragnaros.
750 | Sulfuron Firelords
769 | Gizlock's Dummy
770 | Gizlock's Charm
771 | Gizlock
789 | Moro'gai
790 | Spirit Guide - Alliance
809 | Shen'dralar | A remnant of the once powerful elves living in Dire Maul, yet still wise and knowledgeable about great secrets.
829 | Ogre (Captain Kromcrush)
849 | Spirit Guide - Horde
869 | Jaedenar
889 | Warsong Outriders | Fierce orcs of the Warsong Clan, locked in battle against the Silverwing Sentinels in Warsong Gulch.
890 | Silverwing Sentinels | Staunch defenders of Ashenvale, locked in battle against the Warsong Outriders in Warsong Gulch.
891 | Alliance Forces
892 | Horde Forces
893 | Revantusk Trolls
909 | Darkmoon Faire | A traveling fair that showcases the weird and the extraordinary. Often spotted in Elwynn Forest and Mulgore.
910 | Brood of Nozdormu | The descendants of the Bronze Dragonflight are the guardians of time and care little for the mortal races.
911 | Silvermoon City | The capital of Quel'Thalas, home of the blood elves. Though nearly destroyed by Arthas' attack on the Sunwell, Silvermoon is once again a thriving city.
912 | Might of Kalimdor
914 | PLAYER, Blood Elf
915 | Armies of C'Thun
916 | Silithid Attackers
917 | The Ironforge Brigade
918 | RC Enemies
919 | RC Objects
920 | Red
921 | Blue
922 | Tranquillien | Once a high elf town, Tranquillien became abandoned after the Scourge invaded Quel'Thalas. It has now been reclaimed by the Forsaken and the blood elves who seek to rid the Ghostlands of the Scourge.
923 | Farstriders
924 | DEPRECATED
925 | Sunstriders
926 | Magister's Guild
927 | PLAYER, Draenei
928 | Scourge Invaders
929 | Bloodmaul Clan
930 | Exodar | The naaru vessel that brought the draenei to Azeroth. Though stranded in the Azuremyst Isles, it acts as a home city for this noble race.
931 | Test Faction (not a real faction) | This faction only exists to test the editing of faction names and descriptions...
932 | The Aldor | An ancient order of draenei priests once run by Velen, the Aldor are currently led by High Priestess Ishanah. They are servants of the naaru in Shattrath City known as the Sha'tar. Rivals of the Scryers.
933 | The Consortium | Led by Nexus-Prince Haramad, the Consortium is a loosely affiliated cartel of ethereal smugglers, traders and thieves that has come to Outland to benefit from its riches.
934 | The Scryers | Voren'thal the Seer leads the dissident blood elves who've rejected Kael'thas' path to power. They've joined forces with the naaru of Shattrath City, much to the dismay of the Aldor.
935 | The Sha'tar | The Sha'tar are a group of powerful naaru who rule over a rebuilt Shattrath City. With the help of the Aldor and the Scryers, they lead the battle against Illidan and the Burning Legion.
936 | Shattrath City
937 | Troll, Forest
938 | The Omenai
939 | DEPRECATED
940 | The Sons of Lothar
941 | The Mag'har | This reclusive group of brown-skinned orcs has escaped any form of demonic corruption. They have retained their traditional way of life in the face of great changes in Outland.
942 | Cenarion Expedition | An exploratory force sent to Outland by the Cenarion Circle to study surviving life forms. The Cenarion Expedition has quickly gained in size and autonomy since the opening of the Dark Portal.
943 | Fel Orc
944 | Fel Orc Ghost
945 | Sons of Lothar Ghosts
946 | Honor Hold | Vestiges of the Sons of Lothar, veterans of the Alliance that first came into Draenor, have steadfastly held on to this Hellfire outpost. They are now joined by the armies from Stormwind and Ironforge.
947 | Thrallmar | The expedition sent through the Dark Portal by Thrall has built a stronghold in Hellfire Peninsula. Thrallmar serves as a base of operations for much of the Horde's activities in Outland.
948 | Test Faction 2
949 | Test Faction 1
950 | ToWoW - Flag
951 | ToWoW - Flag Trigger Alliance (DND)
952 | Test Faction 3
953 | Test Faction 4
954 | ToWoW - Flag Trigger Horde (DND)
955 | Broken
956 | Ethereum
957 | Earth Elemental
958 | Fighting Robots
959 | Actor Good
960 | Actor Evil
961 | Stillpine Furbolg
962 | Crazed Owlkin
963 | Chess Alliance
964 | Chess Horde
965 | Monster Spar
966 | Monster Spar Buddy
967 | The Violet Eye | A secret sect of the Kirin Tor founded to spy on Medivh and his activities.
968 | Sunhawks
969 | Hand of Argus
970 | Sporeggar | The sporelings are a mostly peaceful race of mushroom-men native to Outland. Their home is located in the southern bogs of Zangarmarsh.
971 | Fungal Giant
972 | Spore Bat
973 | Monster, Predator
974 | Monster, Prey
975 | Void Anomaly
976 | Hyjal Defenders
977 | Hyjal Invaders
978 | Kurenai | Draenei for "redeemed." These Broken have escaped the grasp of their various slavers in Outland and have made their home in Nagrand. It is there that they seek to rediscover their destiny.
979 | Earthen Ring
980 | Outland
981 | Arakkoa
982 | Zangarmarsh Banner (Alliance)
983 | Zangarmarsh Banner (Horde)
984 | Zangarmarsh Banner (Neutral)
985 | Caverns of Time - Thrall
986 | Caverns of Time - Durnholde
987 | Caverns of Time - Southshore Guards
988 | Shadow Council Covert
989 | Keepers of Time | The Keepers of Time are bronze dragons hand-picked by Nozdormu to watch over the Caverns of Time.
990 | The Scale of the Sands | A secretive subgroup of the Bronze Dragonflight, led by Soridormi, prime mate of Nozdormu.
991 | Dark Portal Defender, Alliance
992 | Dark Portal Defender, Horde
993 | Dark Portal Attacker, Legion
994 | Inciter Trigger | Used for the Blackheart the Inciter event.
995 | Inciter Trigger 2 | Used for the Blackheart the Inciter event.
996 | Inciter Trigger 3 | Used for the Blackheart the Inciter event.
997 | Inciter Trigger 4 | Used for the Blackheart the Inciter event.
998 | Inciter Trigger 5 | Used for the Blackheart the Inciter event.
999 | Mana Creature
1000 | Khadgar's Servant
1001 | Bladespire Clan
1002 | Ethereum Sparbuddy
1003 | Protectorate
1004 | Arcane Annihilator (DNR)
1005 | Friendly, Hidden
1006 | Kirin'Var - Dathric
1007 | Kirin'Var - Belmara
1008 | Kirin'Var - Luminrath
1009 | Kirin'Var - Cohlien
1010 | Servant of Illidan
1011 | Lower City | The refugees of Shattrath come from diverse backgrounds and races. Word of helpful deeds spreads quickly among the Denizens of Lower City.
1012 | Ashtongue Deathsworn | The elite of the Broken tribe known as the Ashtongue, officially aligned with Illidan. The Deathsworn are Akama's most trusted lieutenants and are privy to their leader's mysterious motivations.
1013 | Spirits of Shadowmoon 1
1014 | Spirits of Shadowmoon 2
1015 | Netherwing | This unusual brood of dragons was spawned from the eggs of Deathwing's black dragonflight, and infused with raw nether-energies. Now, they seek to find their identity beyond the shadows of their father's destructive heritage.
1016 | Wyrmcult
1017 | Treant
1018 | Leotheras Demon I
1019 | Leotheras Demon II
1020 | Leotheras Demon III
1021 | Leotheras Demon IV
1022 | Leotheras Demon V
1023 | Azaloth
1024 | Rock Flayer
1025 | Flayer Hunter
1026 | Shadowmoon Shade
1027 | Legion Communicator
1028 | Ravenswood Ancients
1029 | Chess, Friendly to All Chess
1030 | Black Temple Gates - Illidari
1031 | Sha'tari Skyguard | An airborne military force created by Shattrath City to deal with the threats that loom in the highest reaches of Outland.
1032 | Area 52
1033 | Maiev
1034 | Skettis Shadowy Arakkoa
1035 | Skettis Arakkoa
1036 | Dragonmaw Enemy
1037 | REUSE
1038 | Ogri'la | The enlightened denizens of Ogri'la have made their dwelling in the western Blade's Edge Mountains, where proximity to apexis crystals has caused them to transcend their brutish ogre nature.
1039 | Ravager
1040 | REUSE
1041 | Frenzy
1042 | Skyguard Enemy
1043 | Skunk, Petunia
1044 | Theramore Deserter
1049 | Troll, Amani
1059 | CTF - Flags
1069 | Ram Racing Powerup DND
1070 | Ram Racing Trap DND
1071 | Craig's Squirrels | A test faction.
1074 | Holiday - Water Barrel
1075 | Holiday - Generic
1077 | Shattered Sun Offensive | Shattrath City's final push against Prince Kael'thas' operations in the Sunwell.
1078 | Fighting Vanity Pet
1080 | Monster, Force Reaction
1081 | Object, Force Reaction
1087 | Holiday Monster


FactionTemplate.dbc

FactionTemplate.dbc

Для версии: 2.4.2

ВАЖНО: Используется только в таблицах creature_template и gameobject_template.

Структура

Поле | Имя
1 | Ид
2 | Ид фракции (из Faction.dbc)
3 | ???
4 | OurMask
5 | friendlyMask
6 | hostileMask
7-10 | enemyFactions
11-14 | friendFactions

Mask

ID | Bit | Name
0 | 1 | All players (and pets)
1 | 2 | Alliance players (and their pets)
2 | 4 | Horde players (and their pets)
3 | 8 | Monster (Not a player nor a pet)

Содержимое

1 | PLAYER, Human
2 | PLAYER, Orc
3 | PLAYER, Dwarf
4 | PLAYER, Night Elf
5 | PLAYER, Undead
6 | PLAYER, Tauren
7 | Creature
10 | Escortee
11 | Stormwind
12 | Stormwind
14 | Monster
15 | Creature
16 | Monster
17 | Defias Brotherhood
18 | Murloc
19 | Gnoll - Redridge
20 | Gnoll - Riverpaw
21 | Undead, Scourge
22 | Beast - Spider
23 | Gnomeregan Exiles
24 | Worgen
25 | Kobold
26 | Kobold
27 | Defias Brotherhood
28 | Troll, Bloodscalp
29 | Orgrimmar
30 | Troll, Skullsplitter
31 | Prey
32 | Beast - Wolf
33 | Escortee
34 | Defias Brotherhood
35 | Friendly
36 | Trogg
37 | Troll, Frostmane
38 | Beast - Wolf
39 | Gnoll - Shadowhide
40 | Orc, Blackrock
41 | Villian
42 | Victim
43 | Villian
44 | Beast - Bear
45 | Ogre
46 | Kurzen's Mercenaries
47 | Venture Company
48 | Beast - Raptor
49 | Basilisk
50 | Dragonflight, Green
51 | Lost Ones
52 | Gizlock's Dummy
53 | Human, Night Watch
54 | Dark Iron Dwarves
55 | Ironforge
56 | Human, Night Watch
57 | Ironforge
58 | Creature
59 | Trogg
60 | Dragonflight, Red
61 | Gnoll - Mosshide
62 | Orc, Dragonmaw
63 | Gnome - Leper
64 | Gnomeregan Exiles
65 | Orgrimmar
66 | Leopard
67 | Scarlet Crusade
68 | Undercity
69 | Ratchet
70 | Gnoll - Rothide
71 | Undercity
72 | Beast - Gorilla
73 | Beast - Carrion Bird
74 | Naga
76 | Dalaran
77 | Forlorn Spirit
78 | Darkhowl
79 | Darnassus
80 | Darnassus
81 | Grell
82 | Furbolg
83 | Horde Generic
84 | Alliance Generic
85 | Orgrimmar
86 | Gizlock's Charm
87 | Syndicate
88 | Hillsbrad Militia
89 | Scarlet Crusade
90 | Demon
91 | Elemental
92 | Spirit
93 | Monster
94 | Treasure
95 | Gnoll - Mudsnout
96 | HIllsbrad, Southshore Mayor
97 | Syndicate
98 | Undercity
99 | Victim
100 | Treasure
101 | Treasure
102 | Treasure
103 | Dragonflight, Black
104 | Thunder Bluff
105 | Thunder Bluff
106 | Horde Generic
107 | Troll, Frostmane
108 | Syndicate
109 | Quilboar, Razormane 2
110 | Quilboar, Razormane 2
111 | Quilboar, Bristleback
112 | Quilboar, Bristleback
113 | Escortee
114 | Treasure
115 | PLAYER, Gnome
116 | PLAYER, Troll
118 | Undercity
119 | Bloodsail Buccaneers
120 | Booty Bay
121 | Booty Bay
122 | Ironforge
123 | Stormwind
124 | Darnassus
125 | Orgrimmar
126 | Darkspear Trolls
127 | Villian
128 | Blackfathom
129 | Makrura
130 | Centaur, Kolkar
131 | Centaur, Galak
132 | Gelkis Clan Centaur
133 | Magram Clan Centaur
134 | Maraudine
148 | Monster
149 | Theramore
150 | Theramore
151 | Theramore
152 | Quilboar, Razorfen
153 | Quilboar, Razorfen
154 | Quilboar, Deathshead
168 | Enemy
188 | Ambient
189 | Creature
190 | Ambient
208 | Nethergarde Caravan
209 | Nethergarde Caravan
210 | Alliance Generic
230 | Southsea Freebooters
231 | Escortee
232 | Escortee
233 | Undead, Scourge
250 | Escortee
270 | Wailing Caverns
290 | Escortee
310 | Silithid
311 | Silithid
312 | Beast - Spider
330 | Wailing Caverns
350 | Blackfathom
370 | Armies of C'Thun
371 | Silvermoon Remnant
390 | Booty Bay
410 | Basilisk
411 | Beast - Bat
412 | The Defilers
413 | Scorpid
414 | Timbermaw Hold
415 | Titan
416 | Titan
430 | Taskmaster Fizzule
450 | Wailing Caverns
470 | Titan
471 | Ravenholdt
472 | Syndicate
473 | Ravenholdt
474 | Gadgetzan
475 | Gadgetzan
494 | Gnomeregan Bug
495 | Escortee
514 | Harpy
534 | Alliance Generic
554 | Burning Blade
574 | Shadowsilk Poacher
575 | Searing Spider
594 | Trogg
614 | Victim
634 | Monster
635 | Cenarion Circle
636 | Timbermaw Hold
637 | Ratchet
654 | Troll, Witherbark
655 | Centaur, Kolkar
674 | Dark Iron Dwarves
694 | Wildhammer Clan
695 | Hydraxian Waterlords
714 | Horde Generic
734 | Dark Iron Dwarves
735 | Goblin, Dark Iron Bar Patron
736 | Goblin, Dark Iron Bar Patron
754 | Dark Iron Dwarves
774 | Escortee
775 | Escortee
776 | Brood of Nozdormu
777 | Might of Kalimdor
778 | Giant
794 | Argent Dawn
795 | Troll, Vilebranch
814 | Argent Dawn
834 | Elemental
854 | Everlook
855 | Everlook
874 | Wintersaber Trainers
875 | Gnomeregan Exiles
876 | Darkspear Trolls
877 | Darkspear Trolls
894 | Theramore
914 | Training Dummy
934 | Furbolg, Uncorrupted
954 | Demon
974 | Undead, Scourge
994 | Cenarion Circle
995 | Thunder Bluff
996 | Cenarion Circle
1014 | Shatterspear Trolls
1015 | Shatterspear Trolls
1034 | Horde Generic
1054 | Wildhammer Clan
1055 | Wildhammer Clan
1074 | Orgrimmar
1075 | Theramore
1076 | Darnassus
1077 | Theramore
1078 | Stormwind
1080 | Friendly
1081 | Elemental
1094 | Beast - Boar
1095 | Training Dummy
1096 | Theramore
1097 | Darnassus
1114 | Dragonflight, Black - Bait
1134 | Undercity
1154 | Undercity
1174 | Orgrimmar
1194 | Battleground Neutral
1214 | Frostwolf Clan
1215 | Frostwolf Clan
1216 | Stormpike Guard
1217 | Stormpike Guard
1234 | Sulfuron Firelords
1235 | Sulfuron Firelords
1236 | Sulfuron Firelords
1254 | Cenarion Circle
1274 | Creature
1275 | Creature
1294 | Gizlock
1314 | Horde Generic
1315 | Alliance Generic
1334 | Stormpike Guard
1335 | Frostwolf Clan
1354 | Shen'dralar
1355 | Shen'dralar
1374 | Ogre (Captain Kromcrush)
1375 | Treasure
1394 | Dragonflight, Black
1395 | Silithid Attackers
1414 | Spirit Guide - Alliance
1415 | Spirit Guide - Horde
1434 | Jaedenar
1454 | Victim
1474 | Thorium Brotherhood
1475 | Thorium Brotherhood
1494 | Revantusk Trolls
1495 | Revantusk Trolls
1496 | Revantusk Trolls
1514 | Silverwing Sentinels
1515 | Warsong Outriders
1534 | Stormpike Guard
1554 | Frostwolf Clan
1555 | Darkmoon Faire
1574 | Zandalar Tribe
1575 | Stormwind
1576 | Silvermoon Remnant
1577 | The League of Arathor
1594 | Darnassus
1595 | Orgrimmar
1596 | Stormpike Guard
1597 | Frostwolf Clan
1598 | The Defilers
1599 | The League of Arathor
1600 | Darnassus
1601 | Brood of Nozdormu
1602 | Silvermoon City
1603 | Silvermoon City
1604 | Silvermoon City
1605 | Dragonflight, Bronze
1606 | Creature
1607 | Creature
1608 | Cenarion Circle
1610 | PLAYER, Blood Elf
1611 | Ironforge
1612 | Orgrimmar
1613 | Might of Kalimdor
1614 | Monster
1615 | Steamwheedle Cartel
1616 | RC Objects
1617 | RC Enemies
1618 | Ironforge
1619 | Orgrimmar
1620 | Enemy
1621 | Blue
1622 | Red
1623 | Tranquillien
1624 | Argent Dawn
1625 | Argent Dawn
1626 | Undead, Scourge
1627 | Farstriders
1628 | Tranquillien
1629 | PLAYER, Draenei
1630 | Scourge Invaders
1634 | Scourge Invaders
1635 | Steamwheedle Cartel
1636 | Farstriders
1637 | Farstriders
1638 | Exodar
1639 | Exodar
1640 | Exodar
1641 | Warsong Outriders
1642 | Silverwing Sentinels
1643 | Troll, Forest
1644 | The Sons of Lothar
1645 | The Sons of Lothar
1646 | Exodar
1647 | Exodar
1648 | The Sons of Lothar
1649 | The Sons of Lothar
1650 | The Mag'har
1651 | The Mag'har
1652 | The Mag'har
1653 | The Mag'har
1654 | Exodar
1655 | Exodar
1656 | Silvermoon City
1657 | Silvermoon City
1658 | Silvermoon City
1659 | Cenarion Expedition
1660 | Cenarion Expedition
1661 | Cenarion Expedition
1662 | Fel Orc
1663 | Fel Orc Ghost
1664 | Sons of Lothar Ghosts
1666 | Honor Hold
1667 | Honor Hold
1668 | Thrallmar
1669 | Thrallmar
1670 | Thrallmar
1671 | Honor Hold
1672 | Test Faction 2
1673 | ToWoW - Flag
1674 | Test Faction 4
1675 | Test Faction 3
1676 | ToWoW - Flag Trigger Horde (DND)
1677 | ToWoW - Flag Trigger Alliance (DND)
1678 | Ethereum
1679 | Broken
1680 | Elemental
1681 | Earth Elemental
1682 | Fighting Robots
1683 | Actor Good
1684 | Actor Evil
1685 | Stillpine Furbolg
1686 | Stillpine Furbolg
1687 | Crazed Owlkin
1688 | Chess Alliance
1689 | Chess Horde
1690 | Chess Alliance
1691 | Chess Horde
1692 | Monster Spar
1693 | Monster Spar Buddy
1694 | Exodar
1695 | Silvermoon City
1696 | The Violet Eye
1697 | Fel Orc
1698 | Exodar
1699 | Exodar
1700 | Exodar
1701 | Sunhawks
1702 | Sunhawks
1703 | Training Dummy
1704 | Fel Orc
1705 | Fel Orc
1706 | Fungal Giant
1707 | Sporeggar
1708 | Sporeggar
1709 | Sporeggar
1710 | Cenarion Expedition
1711 | Monster, Predator
1712 | Monster, Prey
1713 | Monster, Prey
1714 | Sunhawks
1715 | Void Anomaly
1716 | Hyjal Defenders
1717 | Hyjal Defenders
1718 | Hyjal Defenders
1719 | Hyjal Defenders
1720 | Hyjal Invaders
1721 | Kurenai
1722 | Kurenai
1723 | Kurenai
1724 | Kurenai
1725 | Earthen Ring
1726 | Earthen Ring
1727 | Earthen Ring
1728 | Cenarion Expedition
1729 | Thrallmar
1730 | The Consortium
1731 | The Consortium
1732 | Alliance Generic
1733 | Alliance Generic
1734 | Horde Generic
1735 | Horde Generic
1736 | Monster Spar Buddy
1737 | Honor Hold
1738 | Arakkoa
1739 | Zangarmarsh Banner (Alliance)
1740 | Zangarmarsh Banner (Horde)
1741 | The Sha'tar
1742 | Zangarmarsh Banner (Neutral)
1743 | The Aldor
1744 | The Scryers
1745 | Silvermoon City
1746 | The Scryers
1747 | Caverns of Time - Thrall
1748 | Caverns of Time - Durnholde
1749 | Caverns of Time - Southshore Guards
1750 | Shadow Council Covert
1751 | Monster
1752 | Dark Portal Attacker, Legion
1753 | Dark Portal Attacker, Legion
1754 | Dark Portal Attacker, Legion
1755 | Dark Portal Defender, Alliance
1756 | Dark Portal Defender, Alliance
1757 | Dark Portal Defender, Alliance
1758 | Dark Portal Defender, Horde
1759 | Dark Portal Defender, Horde
1760 | Dark Portal Defender, Horde
1761 | Inciter Trigger
1762 | Inciter Trigger 2
1763 | Inciter Trigger 3
1764 | Inciter Trigger 4
1765 | Inciter Trigger 5
1766 | Argent Dawn
1767 | Argent Dawn
1768 | Demon
1769 | Demon
1770 | Actor Good
1771 | Actor Evil
1772 | Mana Creature
1773 | Khadgar's Servant
1774 | Friendly
1775 | The Sha'tar
1776 | The Aldor
1777 | The Aldor
1778 | The Scale of the Sands
1779 | Keepers of Time
1780 | Bladespire Clan
1781 | Bloodmaul Clan
1782 | Bladespire Clan
1783 | Bloodmaul Clan
1784 | Bladespire Clan
1785 | Bloodmaul Clan
1786 | Demon
1787 | Monster
1788 | The Consortium
1789 | Sunhawks
1790 | Bladespire Clan
1791 | Bloodmaul Clan
1792 | Fel Orc
1793 | Sunhawks
1794 | Protectorate
1795 | Protectorate
1796 | Ethereum
1797 | Protectorate
1798 | Arcane Annihilator (DNR)
1799 | Ethereum Sparbuddy
1800 | Ethereum
1801 | Horde
1802 | Alliance
1803 | Ambient
1804 | Ambient
1805 | The Aldor
1806 | Friendly
1807 | Protectorate
1808 | Kirin'Var - Belmara
1809 | Kirin'Var - Cohlien
1810 | Kirin'Var - Dathric
1811 | Kirin'Var - Luminrath
1812 | Friendly
1813 | Servant of Illidan
1814 | Monster Spar Buddy
1815 | Beast - Wolf
1816 | Friendly
1818 | Lower City
1819 | Alliance Generic
1820 | Ashtongue Deathsworn
1821 | Spirits of Shadowmoon 1
1822 | Spirits of Shadowmoon 2
1823 | Ethereum
1824 | Netherwing
1825 | Demon
1826 | Servant of Illidan
1827 | Wyrmcult
1828 | Treant
1829 | Leotheras Demon I
1830 | Leotheras Demon II
1831 | Leotheras Demon III
1832 | Leotheras Demon IV
1833 | Leotheras Demon V
1834 | Azaloth
1835 | Horde Generic
1836 | The Consortium
1837 | Sporeggar
1838 | The Scryers
1839 | Rock Flayer
1840 | Flayer Hunter
1841 | Shadowmoon Shade
1842 | Legion Communicator
1843 | Servant of Illidan
1844 | The Aldor
1845 | The Scryers
1846 | Ravenswood Ancients
1847 | Monster Spar
1848 | Monster Spar Buddy
1849 | Servant of Illidan
1850 | Netherwing
1851 | Lower City
1852 | Chess, Friendly to All Chess
... | ...
1853 | Servant of Illidan
1854 | The Aldor
1855 | The Scryers
1856 | The Scryers
1857 | Friendly
1858 | Ashtongue Deathsworn
1859 | Maiev
1860 | Skettis Shadowy Arakkoa
1862 | Skettis Arakkoa
1863 | Orc, Dragonmaw
1864 | Dragonmaw Enemy
1865 | Orc, Dragonmaw
1866 | Ashtongue Deathsworn
1867 | Maiev
1868 | Monster Spar Buddy
1869 | Arakkoa
1870 | Sha'tari Skyguard
1871 | Skettis Arakkoa
1872 | Ogri'la
1873 | Rock Flayer
1874 | Ogri'la
1875 | The Aldor
1876 | The Scryers
1877 | Orc, Dragonmaw
1878 | Frenzy
1879 | Skyguard Enemy
1880 | Orc, Dragonmaw
1881 | Skettis Arakkoa
1882 | Servant of Illidan
1883 | Theramore Deserter
1890 | Troll, Amani
1896 | Darkmoon Faire
1909 | Beast - Raptor
1913 | CTF - Flags
1916 | Maiev
1930 | Ram Racing Powerup DND
1931 | Ram Racing Trap DND
1934 | Actor Good
1935 | Actor Good
1936 | Craig's Squirrels
1937 | Craig's Squirrels
1938 | Craig's Squirrels
1939 | Craig's Squirrels
1940 | Craig's Squirrels
1941 | Craig's Squirrels
1942 | Craig's Squirrels
1943 | Craig's Squirrels
1944 | Craig's Squirrels
1945 | Craig's Squirrels
1951 | Darnassus
1952 | Holiday - Water Barrel
1956 | Shattered Sun Offensive
1957 | Shattered Sun Offensive
1958 | Actor Evil
1959 | Actor Evil
1960 | Shattered Sun Offensive
1961 | Fighting Vanity Pet
1962 | Undead, Scourge
1963 | Demon
1964 | Undead, Scourge
1965 | Monster Spar
1966 | Murloc
1967 | Shattered Sun Offensive
1971 | Monster, Force Reaction
1972 | Object, Force Reaction
1990 | Ambient
1992 | Monster
1995 | CTF - Flags
1997 | CTF - Flags
1998 | Holiday Monster
2029 | Monster, Predator


Item.dbc

Item.dbc

Для версии: 3.0.8

  • 40083 записи
  • Структура:
# | Значение (англ.) | Перевод
1 | entry | номер вещи
2 | class | класс вещи
3 | subclass | подкласс вещи
4 | unk4 |
5 | material | материал
6 | displayID | номер изображения
7 | inventoryType | тип инвенторя
8 | sheath |


ItemClass.dbc

ItemClass.dbc

Версия клиента: 3.0.8a.9506

Records....................17
Fields.....................20
Record Size................80
String Block Size.........1296

Column | Field | Type | Notes
1 | ID | Integer | уникальный номер класса
2 | Unknown | Integer |
3 | Unknown | String |
4-12 | Title | String | название класса
13-20 | Unknown | Unknown |


ItemDisplayInfo.dbc

ItemDisplayInfo.dbc

Для версии: 2.4.2

Столбец | Описание
1 | Идентификатор модели предмета
2 | Модель левой части
3 | Модель правой части
4 | Текстура левой части
5 | Текстура правой части
6 | Имя иконки отображаемая в игре
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | Texture Arm Upper (?Текстура верхней части руки?)
17 | Texture Arm Lower (?Текстура нижней части руки?)
18 | Texture Hand (?Текстура руки?)
19 | Texture Torso Upper (?Текстура верхней части груди?)
20 | Texture Torso Lower (?Текстура нижней части груди?)
21 | Texture Leg Upper (?Текстура верхней части ноги?)
22 | Texture Leg Lower (?Текстура нижней части ноги?)
23 | Texture Foot (?Текстура обуви?)
24 |
25 |


ItemExtendedCost.dbc

ItemExtendedCost.dbc

Для версии: 2.4.2

[править] Описание

Таблица, хранит в себе набор данных определяющих расширенную продажу предмета (покупку предмета за хонор поинты, арена поинты или другие предметы).

[править] Структура

Столбец | Поле | Тип | Описание
1 | ID | Integer | Идентификатор
2 | Honor_Points | Integer | Количество Honor Points
3 | Arena_Points | Integer | Количество Arena Points
4 | ItemID_1 | Integer | Entry предмета из Item_template
5 | ItemID_2 | Integer | Entry предмета из Item_template
6 | ItemID_3 | Integer | Entry предмета из Item_template
7 | Title_7 | Float | NULL
8 | Title_8 | Float | NULL
9 | Count_1 | Integer | Количество предметов описаных в поле ItemID_1
10 | Count_2 | Integer | Количество предметов описаных в поле ItemID_2
11 | Count_3 | Integer | Количество предметов описаных в поле ItemID_3
12 | Title_12 | Integer | NULL
13 | Title_13 | Integer | NULL
14 | Title_14 | Integer | NULL


Itemset.dbc

Itemset.dbc

Для версии: 2.0.12

1 | The Gladiator
41 | Dal'Rend's Arms
65 | Spider's Kiss
81 | The Postmaster
121 | Cadaverous Garb
122 | Necropile Raiment
123 | Bloodmail Regalia
124 | Deathbone Guardian
141 | Volcanic Armor
142 | Stormshroud Armor
143 | Devilsaur Armor
144 | Ironfeather Armor
161 | Defias Leather
162 | Embrace of the Viper
163 | Chain of the Scarlet Crusade
181 | Magister's Regalia
182 | Vestments of the Devout
183 | Dreadmist Raiment
184 | Shadowcraft Armor
185 | Wildheart Raiment
186 | Beaststalker Armor
187 | The Elements
188 | Lightforge Armor
189 | Battlegear of Valor
201 | Arcanist Regalia
202 | Vestments of Prophecy
203 | Felheart Raiment
204 | Nightslayer Armor
205 | Cenarion Raiment
206 | Giantstalker Armor
207 | The Earthfury
208 | Lawbringer Armor
209 | Battlegear of Might
210 | Netherwind Regalia
211 | Vestments of Transcendence
212 | Nemesis Raiment
213 | Bloodfang Armor
214 | Stormrage Raiment
215 | Dragonstalker Armor
216 | The Ten Storms
217 | Judgement Armor
218 | Battlegear of Wrath
221 | Garb of Thero-shan
241 | Shard of the Gods
261 | Spirit of Eskhandar
281 | Champion's Battlegear
282 | Lieutenant Commander's Battlegear
301 | Champion's Earthshaker
321 | Imperial Plate
341 | Champion's Regalia
342 | Champion's Raiment
343 | Lieutenant Commander's Regalia
344 | Lieutenant Commander's Raiment
345 | Champion's Threads
346 | Lieutenant Commander's Threads
347 | Champion's Vestments
348 | Lieutenant Commander's Vestments
361 | Champion's Pursuit
362 | Lieutenant Commander's Pursuit
381 | Lieutenant Commander's Sanctuary
382 | Champion's Sanctuary
383 | Warlord's Battlegear
384 | Field Marshal's Battlegear
386 | Warlord's Earthshaker
387 | Warlord's Regalia
388 | Field Marshal's Regalia
389 | Field Marshal's Raiment
390 | Warlord's Raiment
391 | Warlord's Threads
392 | Field Marshal's Threads
393 | Warlord's Vestments
394 | Field Marshal's Vestments
395 | Field Marshal's Pursuit
396 | Warlord's Pursuit
397 | Field Marshal's Sanctuary
398 | Warlord's Sanctuary
401 | Lieutenant Commander's Aegis
402 | Field Marshal's Aegis
421 | Bloodvine Garb
441 | Primal Batskin
442 | Blood Tiger Harness
443 | Bloodsoul Embrace
444 | The Darksoul
461 | The Twin Blades of Hakkari
462 | Zanzil's Concentration
463 | Primal Blessing
464 | Overlord's Resolution
465 | Prayer of the Primal
466 | Major Mojo Infusion
467 | The Highlander's Resolution
468 | The Highlander's Resolve
469 | The Highlander's Determination
470 | The Highlander's Fortitude
471 | The Highlander's Purpose
472 | The Highlander's Will
473 | The Highlander's Intent
474 | Vindicator's Battlegear
475 | Freethinker's Armor
476 | Augur's Regalia
477 | Predator's Armor
478 | Madcap's Outfit
479 | Haruspex's Garb
480 | Confessor's Raiment
481 | Demoniac's Threads
482 | Illusionist's Attire
483 | The Defiler's Determination
484 | The Defiler's Fortitude
485 | The Defiler's Intent
486 | The Defiler's Purpose
487 | The Defiler's Resolution
488 | The Defiler's Will
489 | Black Dragon Mail
490 | Green Dragon Mail
491 | Blue Dragon Mail
492 | Twilight Trappings
493 | Genesis Raiment
494 | Symbols of Unending Life
495 | Battlegear of Unyielding Strength
496 | Conqueror's Battlegear
497 | Deathdealer's Embrace
498 | Emblems of Veiled Shadows
499 | Doomcaller's Attire
500 | Implements of Unspoken Names
501 | Stormcaller's Garb
502 | Gift of the Gathering Storm
503 | Enigma Vestments
504 | Trappings of Vaulted Secrets
505 | Avenger's Battlegear
506 | Battlegear of Eternal Justice
507 | Garments of the Oracle
508 | Finery of Infinite Wisdom
509 | Striker's Garb
510 | Trappings of the Unseen Path
511 | Battlegear of Heroism
512 | Darkmantle Armor
513 | Feralheart Raiment
514 | Vestments of the Virtuous
515 | Beastmaster Armor
516 | Soulforge Armor
517 | Sorcerer's Regalia
518 | Deathmist Raiment
519 | The Five Thunders
520 | Ironweave Battlesuit
521 | Dreamwalker Raiment
522 | Champion's Guard
523 | Dreadnaught's Battlegear
524 | Bonescythe Armor
525 | Vestments of Faith
526 | Frostfire Regalia
527 | The Earthshatterer
528 | Redemption Armor
529 | Plagueheart Raiment
530 | Cryptstalker Armor
533 | Battlegear of Undead Slaying
534 | Undead Slayer's Armor
535 | Garb of the Undead Slayer
536 | Regalia of Undead Cleansing
537 | Champion's Battlearmor
538 | Champion's Stormcaller
539 | Champion's Refuge
540 | Champion's Investiture
541 | Champion's Dreadgear
542 | Champion's Arcanum
543 | Champion's Pursuance
544 | Lieutenant Commander's Redoubt
545 | Lieutenant Commander's Battlearmor
546 | Lieutenant Commander's Arcanum
547 | Lieutenant Commander's Dreadgear
548 | Lieutenant Commander's Guard
549 | Lieutenant Commander's Investiture
550 | Lieutenant Commander's Pursuance
551 | Lieutenant Commander's Refuge
552 | Wrath of Spellfire
553 | Shadow's Embrace
554 | Primal Mooncloth
555 | Netherweave Vestments
556 | Imbued Netherweave
557 | Soulcloth Embrace
558 | Arcanoweave Vestments
559 | Spellstrike Infusion
560 | Fel Iron Plate
561 | Fel Iron Chain
562 | Adamantite Battlegear
563 | Enchanted Adamantite Armor
564 | Shadow Guard
565 | Khorium Ward
566 | Burning Rage
567 | Gladiator's Battlegear
568 | Gladiator's Dreadgear
569 | Faith in Felsteel
570 | The Unyielding
571 | Whitemend Wisdom
572 | Battlecast Garb
573 | Fel Skin
574 | Strength of the Clefthoof
575 | Felstalker Armor
576 | Fury of the Nether
577 | Gladiator's Vestments
578 | Gladiator's Earthshaker
579 | Gladiator's Regalia
580 | Gladiator's Thunderfist
581 | Gladiator's Raiment
582 | Gladiator's Aegis
583 | Gladiator's Vindication
584 | Gladiator's Sanctuary
585 | Gladiator's Wildhide
586 | Gladiator's Pursuit
587 | High Warlord's Aegis
588 | High Warlord's Battlegear
589 | Grand Marshal's Aegis
590 | Grand Marshal's Battlegear
591 | Grand Marshal's Dreadgear
592 | High Warlord's Dreadgear
593 | Grand Marshal's Earthshaker
594 | High Warlord's Earthshaker
595 | Grand Marshal's Pursuit
596 | High Warlord's Pursuit
597 | Grand Marshal's Raiment
598 | High Warlord's Raiment
599 | Grand Marshal's Regalia
600 | High Warlord's Regalia
601 | Grand Marshal's Sanctuary
602 | High Warlord's Sanctuary
603 | Grand Marshal's Thunderfist
604 | High Warlord's Thunderfist
605 | Grand Marshal's Vestments
606 | High Warlord's Vestments
607 | Grand Marshal's Vindication
608 | High Warlord's Vindication
609 | Grand Marshal's Wildhide
610 | High Warlord's Wildhide
611 | Felscale Armor
612 | Scaled Draenic Armor
613 | Thick Draenic Armor
614 | Wild Draenish Armor
615 | Gladiator's Felshroud
616 | Netherscale Armor
617 | Netherstrike Armor
618 | Windhawk Armor
619 | Primal Intent
620 | Assassination Armor
621 | Netherblade
622 | Deathmantle
623 | Righteous Armor
624 | Justicar Raiment
625 | Justicar Armor
626 | Justicar Battlegear
627 | Crystalforge Raiment
628 | Crystalforge Armor
629 | Crystalforge Battlegear
630 | Tidefury Raiment
631 | Cyclone Raiment
632 | Cyclone Regalia
633 | Cyclone Harness
634 | Cataclysm Raiment
635 | Cyclone Regalia
636 | Cataclysm Harness
637 | Moonglade Raiment
638 | Malorne Raiment
639 | Malorne Regalia
640 | Malorne Harness
641 | Nordrassil Harness
642 | Nordrassil Raiment
643 | Nordrassil Regalia
644 | Oblivion Raiment
645 | Voidheart Raiment
646 | Corruptor Raiment
647 | Incanter's Regalia
648 | Aldor Regalia
649 | Tirisfal Regalia
650 | Beast Lord Armor
651 | Demon Stalker Armor
652 | Rift Stalker Armor
653 | Bold Armor
654 | Warbringer Armor
655 | Warbringer Battlegear
656 | Destroyer Armor
657 | Destroyer Battlegear
658 | Mana-Etched Regalia
659 | Wastewalker Armor
660 | Desolation Battlegear
661 | Doomplate Battlegear
662 | Hallowed Raiment
663 | Incarnate Raiment
664 | Incarnate Regalia
665 | Avatar Raiment
666 | Avatar Regalia
667 | The Twin Stars
668 | Slayer's Armor
669 | Gronnstalker's Armor
670 | Malefic Raiment
671 | Tempest Regalia
672 | Onslaught Battlegear
673 | Onslaught Armor
674 | Absolution Regalia
675 | Vestments of Absolution
676 | Thunderheart Harness
677 | Thunderheart Regalia
678 | Thunderheart Raiment
679 | Lightbringer Battlegear
680 | Lightbringer Battlegear
681 | Lightbringer Raiment
682 | Skyshatter Harness
683 | Skyshatter Raiment
684 | Skyshatter Regalia
685 | Gladiator's Refuge
686 | Gladiator's Wartide
687 | Gladiator's Investiture
688 | Grand Marshal's Refuge
689 | High Warlord's Refuge
690 | Gladiator's Redemption
691 | Grand Marshal's Investiture
692 | High Warlord's Investiture
693 | Grand Marshal's Redemption
694 | High Warlord's Redemption
695 | Grand Marshal's Wartide
696 | High Warlord's Wartide


Languages.dbc

Languages.dbc

Для версии: 2.4.2

id | name | Описание
1 | Orcish | Язык орков
2 | Darnassian | Язык эльфов
3 | Taurahe | Язык тауренов
6 | Dwarvish | Язык карликов
7 | Common | Язык людей
8 | Demonic | Язык демонов
9 | Titan | Язык титанов
10 | Thalassian | Язык бладэльфов
11 | Draconic |
12 | Kalimag |
13 | Gnomish | Язык гномов
14 | Troll | Язык троллей
33 | Gutterspeak | Язык андедов
35 | Draenei | Язык дренеи
36 | Zombie | Язык зомби


Lock.dbc

Lock.dbc

Для версии: 3.0.8

Описание

Таблица, хранит в себе набор данных определяющих требования для открытия закрытых объектов (вещей/го).

  • 378 записи

Структура

Столбец | Поле | Тип | Описание
1 | ID | Integer | Идентификатор
2 | Type_1 | Integer | Если значение = 1, тогда в поле "lock_properties" указан ID вещи. Если 2, тогда "lock_properties" = ID из LockType.dbc
3 | Type_2 | Integer | "
4 | Type_3 | Integer | "
5 | Type_4 | Integer | "
6 | Type_5 | Integer | "
7 | Type_6 | NULL | "
8 | Type_7 | NULL | "
9 | Type_8 | NULL | "
10 | Lock_Properties_1 | Integer | Если поле Type = 2, тогда это ссылка на ID из LockType.dbc Если поле Type = 1, тогда это entry (номер) из Item_template ключа (key) или вещи которая отпирает эту вещь/сундук.
11 | Lock_Properties_2 | Integer | "
12 | Lock_Properties_3 | Integer | "
13 | Lock_Properties_4 | Integer | "
14 | Lock_Properties_5 | Integer | "
15 | Lock_Properties_6 | NULL | "
16 | Lock_Properties_7 | NULL | "
17 | Lock_Properties_8 | NULL | "
18 | Required_Skill_1 | Integer | Требуемый скилл для открытия
19 | Required_Skill_2 | Integer | "
20 | Required_Skill_3 | Integer | "
21 | Required_Skill_4 | Integer | "
22 | Required_Skill_5 | Integer | "
23 | Required_Skill_6 | NULL | "
24 | Required_Skill_7 | NULL | "
25 | Required_Skill_8 | NULL | "
26 | Action_1 | Integer | Возможно: Что-то указывающее - что делать при открытии /закрытии ?
27 | Action_2 | Integer | "
28 | Action_3 | Integer | "
29 | Action_4 | Integer | "
30 | Action_5 | Integer | "
31 | Action_6 | NULL | "
32 | Action_7 | NULL | "
33 | Action_8 | NULL | "


LockType.dbc

LockType.dbc

Для версии: 2.0.12

id | name | Column #11 | Column #20 | Column #29
1 | Pick Lock | Locked Items | Pick | PickLock
2 | Herbalism | Herbs | Gather | GatherHerbs
3 | Mining | Ore Deposits | Mine | Mine
4 | Disarm Trap | Trap | Disarm |
5 | Open | Unlocked Items | Open |
6 | Treasure (DND) | Treasure |  |
7 | Calcified Elven Gems (DND) | Calcified Elven Gems |  |
8 | Close | Unlocked Items | Close |
9 | Arm Trap | Trap | Arm |
10 | Quick Open | Unlocked Items | Open |
11 | Quick Close | Unlocked Items | Close |
12 | Open Tinkering | Unlocked Items | Open |
13 | Open Kneeling | Unlocked Items | Open |
14 | Open Attacking | Unlocked Items | Open |
15 | Gahz'ridian (DND) | Gahz'ridian |  |
16 | Blasting | Locked Items | Blast |
17 | Slow Open | Unlocked Items | Open |
18 | Slow Close | Unlocked Items | Close |
19 | Fishing | Fish | Fish |


Map.dbc

Map.dbc

Для версии: 3.0.3

ID | Name | Map Name
0 | Azeroth | Eastern Kingdoms
1 | Kalimdor | Kalimdor
13 | test | Testing
25 | ScottTest | Scott Test
29 | Test | CashTest
30 | PVPZone01 | Azeroth -Alterac Valley
33 | Shadowfang | Shadowfang Keep
34 | StormwindJail | Stormwind Stockade
35 | StormwindPrison | <unused>StormwindPrison
36 | DeadminesInstance | Deadmines
37 | PVPZone02 | Azeroth -Azshara Crater
42 | Collin | Collin's Test
43 | WailingCaverns | Wailing Caverns
44 | Monastery | <unused> Monastery
47 | RazorfenKraulInstance | Razorfen Kraul
48 | Blackfathom | Blackfathom Deeps
70 | Uldaman | Uldaman
90 | GnomeragonInstance | Gnomeregan
109 | SunkenTemple | Sunken Temple
129 | RazorfenDowns | Razorfen Downs
169 | EmeraldDream | Emerald Dream
189 | MonasteryInstances | Scarlet Monastery
209 | TanarisInstance | Zul'Farrak
229 | BlackRockSpire | Blackrock Spire
230 | BlackrockDepths | Blackrock Depths
249 | OnyxiaLairInstance | Onyxia's Lair
269 | CavernsOfTime | Caverns of Time: The Black Morass
289 | SchoolofNecromancy | Scholomance
309 | Zul'gurub | Zul'Gurub
329 | Stratholme | Stratholme
349 | Maraudon | Maraudon
369 | DeeprunTram | Deeprun Tram
389 | OrgrimmarInstance | Ragefire Chasm
409 | MoltenCore | Molten Core
429 | DireMaul | Dire Maul
449 | AlliancePVPBarracks | Alliance PVP Barracks
450 | HordePVPBarracks | Horde PVP Barracks
451 | development | Development Land
469 | BlackwingLair | Blackwing Lair
489 | PVPZone03 | Azeroth -Warsong Gulch
509 | AhnQiraj | Ruins of Ahn'Qiraj
529 | PVPZone04 | Azeroth -Arathi Basin
530 | Expansion01 | Outland
531 | AhnQirajTemple | Ahn'Qiraj Temple
532 | Karazahn | Karazhan
533 | Stratholme Raid | Naxxramas
534 | HyjalPast | Caverns of Time: Hyjal Summit
540 | HellfireMilitary | Hellfire Citadel: The Shattered Halls
542 | HellfireDemon | Hellfire Citadel: The Blood Furnace
543 | HellfireRampart | Hellfire Citadel: Ramparts
544 | HellfireRaid | Hellfire Citadel: Magtheridon's Lair
545 | CoilfangPumping | Coilfang Reservoir: The Steamvault
546 | CoilfangMarsh | Coilfang Reservoir: The Underbog
547 | CoilfangDraenei | Coilfang Reservoir: The Slave Pens
548 | CoilfangRaid | Coilfang Reservoir: Serpentshrine Cavern
550 | TempestKeepRaid | Tempest Keep: The Eye
552 | TempestKeepArcane | Tempest Keep: The Arcatraz
553 | TempestKeepAtrium | Tempest Keep: The Botanica
554 | TempestKeepFactory | Tempest Keep: The Mechanar
555 | AuchindounShadow | Auchindoun: Shadow Labyrinth
556 | AuchindounDemon | Auchindoun: Sethekk Halls
557 | AuchindounEthereal | Auchindoun: Mana-Tombs
558 | AuchindounDraenei | Auchindoun: Auchenai Crypts
559 | PVPZone05 | Nagrand Arena
560 | HillsbradPast | Caverns of Time: Durnholde Keep
562 | bladesedgearena | Blade's Edge Arena
564 | BlackTemple | Black Temple
565 | GruulsLair | Gruul's Lair
566 | NetherstormBG | Eye of the Storm
568 | ZulAman | Zul'Aman
571 | Northrend | Northrend
572 | PVPLordaeron | Ruins of Lordaeron
573 | ExteriorTest |
574 | Valgarde70 |
575 | UtgardePinnacle |
576 | Nexus70 |
578 | Nexus80 |
580 | SunwellPlateau | Sunwell Plateau
582 | Transport176244 | Transport: Rut'theran to Auberdine
584 | Transport176231 | Transport: Menethil to Theramore
585 | Sunwell5ManFix | Magisters Terrace (heroic)
586 | Transport181645 | Transport: Exodar to Auberdine
587 | Transport177233 | Transport: Feathermoon Ferry
588 | Transport176310 | Transport: Menethil to Auberdine
589 | Transport175080 | Transport: Orgrimmar to Grom'Gol
590 | Transport176495 | Transport: Grom'Gol to Undercity
591 | Transport164871 | Transport: Undercity to Orgrimmar
593 | Transport20808 | Transport: Booty Bay to Ratchet
594 | Transport187038 |
595 | StratholmeCOT |
596 | Transport187263 |
597 | CraigTest |
598 | Sunwell5Man | Sunwell Fix (Unused)
599 | Ulduar70 |
600 | DrakTheronKeep |
601 | Azjol_Uppercity |
602 | Ulduar80 |
603 | UlduarRaid |
604 | GunDrak |
605 | development_nonweighted |
606 | QA_DVD |
607 | NorthrendBG |
608 | DalaranPrison |
609 | DeathKnightStart |
610 | Transport_Tirisfal _Vengeance_Landing |
612 | Transport_Menethil_Valgarde |
613 | Transport_Orgrimmar_Warsong_Hold |
614 | Transport_Stormwind_Valiance_Keep |
615 | ChamberOfAspectsBlack |
616 | NexusRaid |
617 | DalaranArena |
618 | OrgrimmarArena |
619 | Azjol_LowerCity |
620 | Transport_Moa'ki_Unu'pe |
621 | Transport_Moa'ki_Kamagua |
622 | Transport192241 |
623 | Transport192242 |
624 | WintergraspRaid |


PageTextMaterial.dbc

PageTextMaterial.dbc

Для версии: 2.0.12

Описание

Список материалов для страниц.

Структура

Столбец | Поле | Тип | Описание
1 | ID | Integer | "
2 | Title | String | Название

Данные

ID | Title
1 | Parchment
2 | Stone
3 | Marble
4 | Silver
5 | Bronze
6 | Valentine


QuestInfo.dbc

QuestInfo.dbc

Для версии: 2.4.3

Описание

Таблица содержит в себе данные о возможных типах квестов.
Значения поля ID присваиваются квестам в базе, в таблице quest_template, в поле Type. Один квест может принадлежать сразу нескольким типам.

Структура

Столбец | Поле | Тип данных | Описание
1 | ID | Integer | Уникальный идентификатор типа квеста.
9 | Type | String | Тип квеста.

Данные

ID | Type | Type на русском | Описание
1 | Group | Группа | Групповой квест
21 | Life | Жизнь | Ежедневный (?)
41 | PvP | PvP | PvP-квест
62 | Raid | Рейд | Рейдовый квест
81 | Dungeon | Подземелье | Квест для инстанса (не рейдовый)
82 | World Event | Игровое событие | Мировой эвент
83 | Legendary | Легенда | Легендарный
84 | Escort | Сопровождение | Квест на эскорт (сопровождение)
85 | Heroic | Героическое | Квест для инстанса (на сложности Heroic)


QuestSort.dbc

QuestSort.dbc

Для версии: 2.4.3

1 | Epic | Эпические
21 | REUSE - old wailing caverns | ПОВТОРНО - Пещеры Стенаний
22 | Seasonal | Сезонные
23 | REUSE - old undercity one | ПОВТОРНО - Подгород 1
24 | Herbalism | Травничество
25 | REUSE - old scarlet monastery | ПОВТОРНО - монастырь Алых
41 | REUSE - old uldaman | ПОВТОРНО - Ульдаман
61 | Warlock | Чернокнижник
81 | Warrior | Воин
82 | Shaman | Шаман
101 | Fishing | Рыбная ловля
121 | Blacksmithing | Кузнечное дело
141 | Paladin | Паладин
161 | Mage | Маг
162 | Rogue | Разбойник
181 | Alchemy | Алхимия
182 | Leatherworking | Кожевничество
201 | Engineering | Инженерное дело
221 | Treasure Map | Поиск кладов
241 | REUSE - old sunken temple | ПОВТОРНО - затонувший храм
261 | Hunter | Охотник
262 | Priest | Жрец
263 | Druid | Друид
264 | Tailoring | Портняжное дело
284 | Special | Особые
304 | Cooking | Кулинария
324 | First Aid | Первая помощь
344 | Legendary | Легенды
364 | Darkmoon Faire | Ярмарка Новолуния
365 | Ahn'Qiraj War | Ан'киражская война
366 | Lunar Festival | Праздник луны
367 | Reputation | Репутация
368 | Invasion | Вторжение
369 | Midsummer | Середина лета
370 | Brewfest | Фестиваль пива


SkillLine.dbc

SkillLine.dbc

Для версии: 2.4.2

6 | Frost
8 | Fire
26 | Arms
38 | Combat
39 | Subtlety
40 | Poisons
43 | Swords
44 | Axes
45 | Bows
46 | Guns
50 | Beast Mastery
51 | Survival
54 | Maces
55 | Two-Handed Swords
56 | Holy
78 | Shadow Magic
95 | Defense
98 | Language: Common
101 | Dwarven Racial
109 | Language: Orcish
111 | Language: Dwarven
113 | Language: Darnassian
115 | Language: Taurahe
118 | Dual Wield
124 | Tauren Racial
125 | Orc Racial
126 | Night Elf Racial
129 | First Aid
134 | Feral Combat
136 | Staves
137 | Language: Thalassian
138 | Language: Draconic
139 | Language: Demon Tongue
140 | Language: Titan
141 | Language: Old Tongue
142 | Survival
148 | Horse Riding
149 | Wolf Riding
150 | Tiger Riding
152 | Ram Riding
155 | Swimming
160 | Two-Handed Maces
162 | Unarmed
163 | Marksmanship
164 | Blacksmithing
165 | Leatherworking
171 | Alchemy
172 | Two-Handed Axes
173 | Daggers
176 | Thrown
182 | Herbalism
183 | GENERIC (DND)
184 | Retribution
185 | Cooking
186 | Mining
188 | Pet - Imp
189 | Pet - Felhunter
197 | Tailoring
202 | Engineering
203 | Pet - Spider
204 | Pet - Voidwalker
205 | Pet - Succubus
206 | Pet - Infernal
207 | Pet - Doomguard
208 | Pet - Wolf
209 | Pet - Cat
210 | Pet - Bear
211 | Pet - Boar
212 | Pet - Crocilisk
213 | Pet - Carrion Bird
214 | Pet - Crab
215 | Pet - Gorilla
217 | Pet - Raptor
218 | Pet - Tallstrider
220 | Racial - Undead
226 | Crossbows
228 | Wands
229 | Polearms
236 | Pet - Scorpid
237 | Arcane
251 | Pet - Turtle
253 | Assassination
256 | Fury
257 | Protection
261 | Beast Training
267 | Protection
270 | Pet - Generic
293 | Plate Mail
313 | Language: Gnomish
315 | Language: Troll
333 | Enchanting
354 | Demonology
355 | Affliction
356 | Fishing
373 | Enhancement
374 | Restoration
375 | Elemental Combat
393 | Skinning
413 | Mail
414 | Leather
415 | Cloth
433 | Shield
473 | Fist Weapons
533 | Raptor Riding
553 | Mechanostrider Piloting
554 | Undead Horsemanship
573 | Restoration
574 | Balance
593 | Destruction
594 | Holy
613 | Discipline
633 | Lockpicking
653 | Pet - Bat
654 | Pet - Hyena
655 | Pet - Owl
656 | Pet - Wind Serpent
673 | Language: Gutterspeak
713 | Kodo Riding
733 | Racial - Troll
753 | Racial - Gnome
754 | Racial - Human
755 | Jewelcrafting
756 | Blood Elf Racial
758 | Pet - Event - Remote Control
759 | Language: Draenei
760 | Draenei Racial
761 | Pet - Felguard
762 | Riding
763 | Pet - Dragonhawk
764 | Pet - Nether Ray
765 | Pet - Sporebat
766 | Pet - Warp Stalker
767 | Pet - Ravager
768 | Pet - Serpent
769 | Internal


Spell.dbc

Spell.dbc

Для версии: 2.0.12

Описание

Загляните, пожалуйста, в обсуждение.

Структура

Столбец | Поле | Тип | Описание
0 | ID | Integer | Идентификатор
1 | School | Integer |
2 | Category | Integer |
3 | ??? | Integer | Не используется. Принимает значения: 1 - заклинания с эффектом Learn Spell, 2 - заклинания маскировки (Disguise), 3 - заклинания с эффектом Enchant Item Permanent/Temporary, 0 - всё остальное
4 | Dispel | Integer | ID из SpellDispellType.dbc
5 | Mechanic | Integer | ID из SpellMechanic.dbc
6 | Attributes | Integer |
7 | AttributesEx | Integer |
8 | AttributesEx2 | Integer |
9 | AttributesEx3 | Integer |
10 | AttributesExEx | Integer |
11 | ??? | Integer | Не используется. Неизвестный флаг: 0x00000000 0x00000001 0x00000002 - призвание петов, требующих SoulShard + создание Spellstone, Healthstone, Firestone 0x00000004 - всё ранги Curse of Recklessness (Warlock) 0x00000008 0x00000010
12 | ID | Stances |
13 | ??? | Integer | Не используется. Примеры значений: 0x00000002 - Druid, Balance Skills 0x40000002 - Druid, остальные умения 0x08000000 - Healing Spells + заклинания с Holy Damage 0x10000000 - Herb Gathering 0x2807A062 - Attack Power - Feral (для форм друида)
14 | Targets | Integer |
15 | TargetCreatureType | Integer |
16 | SpellFocusObject | Integer | Объект, который должны находиться в радиусе для каста заклинания (RequiresSpellFocus в DBCStructure.h). Значение из SpellFocusObject.dbc.
17 | CasterAuraState | Integer |
18 | TargetAuraState | Integer |
19 | ??? | Integer | Не используется.
20 | ??? | Integer | Не используется.
21 | CastingTimeIndex | Integer | Время кастовки заклинания. Из SpellCastTimes.dbc.
22 | RecoveryTime | Integer | Время кулдауна (например, 1000 - 1 секунда).
23 | CategoryRecoveryTime | Integer | Время кулдауна для всех заклинаний категории.
24 | InterruptFlags | Integer |
25 | AuraInterruptFlags | Integer |
26 | ChannelInterruptFlags | Integer |
27 | ProcFlags | Integer |
28 | ProcChance | Integer |
29 | ProcCharges | Integer |
30 | MaxLevel | Integer |
31 | BaseLevel | Integer | Уровень с которого заклинание доступно.
32 | SpellLevel | Integer |
33 | DurationIndex | Integer |
34 | PowerType | Integer |
35 | ManaCost | Integer | Затраты манны на заклинание.
36 | ManaCostPerlevel | Integer |
37 | ManaPerSecond | Integer |
38 | ManaPerSecondPerLevel | Integer |
39 | RangeIndex | Integer | Радиус действия для заклинаний, не являющихся аурами. Значения из SpellRange.dbc.
40 | Speed | Float | Скорость. Eсли 0, то Instant.
41 | ModalNextSpell | Integer |
42 | StackAmount | Integer | Количество раз, которое заклинание может накладываться (в смысле складываться) на цели. Пример: Sunder Armor у Warrior - до 5 раз на цель.
43 | Totem_1 | Integer | Требуемый не-consumable предмет (напр. тотем, костер и т.д.)
44 | Totem_2 | Integer |
45 | Reagent_1 | Integer | Требуемый consumable предмет.
46 | Reagent_2 | Integer |
47 | Reagent_3 | Integer |
48 | Reagent_4 | Integer |
49 | Reagent_5 | Integer |
50 | Reagent_6 | Integer |
51 | Reagent_7 | Integer |
52 | Reagent_8 | Integer |
53 | ReagentCount_1 | Integer | Количество требуемых consumable из поля Reagent_1
54 | ReagentCount_2 | Integer |
55 | ReagentCount_3 | Integer |
56 | ReagentCount_4 | Integer |
57 | ReagentCount_5 | Integer |
58 | ReagentCount_6 | Integer |
59 | ReagentCount_7 | Integer |
60 | ReagentCount_8 | Integer |
61 | EquippedItemClass | Integer | (значение) Используется заклинаниями, требующими определенный класс предмета (в основной руке, ranged-слоте и т.д.)
62 | EquippedItemSubClassMask | Integer | (маска) Аналогично 61.
63 | EquippedItemInventoryTypeMask | Integer | (маска) Аналогично 61.
64 | Effect_1 | Integer | Первый эффект заклинания
65 | Effect_2 | Integer | Второй эффект заклинания
66 | Effect_3 | Integer | Третий эффект заклинания
67 | EffectDieSides_1 | Integer |
68 | EffectDieSides_2 | Integer |
69 | EffectDieSides_3 | Integer |
70 | EffectBaseDice_1 | Integer |
71 | EffectBaseDice_2 | Integer |
72 | EffectBaseDice_3 | Integer |
73 | EffectDicePerLevel_1 | Float |
74 | EffectDicePerLevel_2 | Float |
75 | EffectDicePerLevel_3 | Float |
76 | EffectRealPointsPerLevel_1 | Float |
77 | EffectRealPointsPerLevel_2 | Float |
78 | EffectRealPointsPerLevel_3 | Float |
79 | EffectBasePoints_1 | Integer | Наносимый спеллом урон - 1
80 | EffectBasePoints_2 | Integer |
81 | EffectBasePoints_3 | Integer |
82 | ??? | Integer | Не используется.
83 | ??? | Integer | Не используется.
84 | ??? | Integer | Не используется.
85 | EffectImplicitTargetA_1 | Integer |
86 | EffectImplicitTargetA_2 | Integer |
87 | EffectImplicitTargetA_3 | Integer |
88 | EffectImplicitTargetB_1 | Integer |
89 | EffectImplicitTargetB_2 | Integer |
90 | EffectImplicitTargetB_3 | Integer |
91 | EffectRadiusIndex_1 | Integer | SpellRadius.dbc
92 | EffectRadiusIndex_2 | Integer |
93 | EffectRadiusIndex_3 | Integer |
94 | EffectApplyAuraName_1 | Integer |
95 | EffectApplyAuraName_2 | Integer |
96 | EffectApplyAuraName_3 | Integer |
97 | EffectAmplitude_1 | Integer |
98 | EffectAmplitude_2 | Integer |
99 | EffectAmplitude_3 | Integer |
100 | EffectMultipleValue_1 | Float |
101 | EffectMultipleValue_2 | Float |
102 | EffectMultipleValue_3 | Float |
103 | EffectChainTarget_1 | Integer |
104 | EffectChainTarget_2 | Integer |
105 | EffectChainTarget_3 | Integer |
106 | EffectItemType_1 | Integer | Предмет, получаемый в результате использования спелла
107 | EffectItemType_2 | Integer |
108 | EffectItemType_3 | Integer |
109 | EffectMiscValue_1 | Integer |
110 | EffectMiscValue_2 | Integer |
111 | EffectMiscValue_3 | Integer |
112 | EffectTriggerSpell_1 | Integer |
113 | EffectTriggerSpell_2 | Integer |
114 | EffectTriggerSpell_3 | Integer |
115 | EffectPointsPerComboPoint_1 | Float | Модификатор для способностей, использующих комбо-поинты для определения конечного значения для завершающего заклинания (Rogue, Druid в Cat Form)
116 | EffectPointsPerComboPoint_2 | Float |
117 | EffectPointsPerComboPoint_3 | Float |
118 | SpellVisual | Integer | Анимация заклинания. SpellVisual.dbc
119 | ??? | Integer | Не используется. Единственное значение отличное от 0 имеет для заклинания Sire's Suicide (#749).
120 | SpellIconID | Integer | ID иконки в книге заклинаний. SpellIcon.dbc
121 | ActiveIconID | Integer | ID buff-иконки заклинания. SpellIcon.dbc
122 | SpellPriority | Integer | Принимает всего два значения: 0 и 50.
123 | SpellName_1 | String | Название заклинания.
124 | SpellName_2 | String |
125 | SpellName_3 | String |
126 | SpellName_4 | String |
127 | SpellName_5 | String |
128 | SpellName_6 | String |
129 | SpellName_7 | String |
130 | SpellName_8 | String |
131 | SpellNameFlag | Integer | Не используется. Флаги для строки.
132 | Rank_1 | String | Текст ранга заклинания.
133 | Rank_2 | String |
134 | Rank_3 | String |
135 | Rank_4 | String |
136 | Rank_5 | String |
137 | Rank_6 | String |
138 | Rank_7 | String |
139 | Rank_8 | String |
140 | RankFlags | Integer | Не используется. Флаги для строки.
141 | Description_1 | String | Не используется. Текст описания.
142 | Description_2 | String |
143 | Description_3 | String |
144 | Description_4 | String |
145 | Description_5 | String |
146 | Description_6 | String |
147 | Description_7 | String |
148 | Description_8 | String |
149 | DescriptionFlags | Integer | Не используется. Флаги для строки.
150 | ToolTip_1 | String | Не используется. Текст всплывающей подсказки.
151 | ToolTip_2 | String |
152 | ToolTip_3 | String |
153 | ToolTip_4 | String |
154 | ToolTip_5 | String |
155 | ToolTip_6 | String |
156 | ToolTip_7 | String |
157 | ToolTip_8 | String |
158 | ToolTipFlags | Integer | Не используется. Флаги для строки.
159 | ManaCostPercentage | Integer | Количество маны для заклинаний, отнимающих её процентую долю. Расчитывается от базового количества маны, а не конечного значения.
160 | StartRecoveryCategory | Integer |
161 | StartRecoveryTime | Integer |
162 | AffectedTargetLevel | Integer | Максимальный уровень цели, на которую воздействует заклинание.
163 | SpellFamilyName | Integer | Принадлежность заклинания к классу: 1 - ??? 3 - Mage 4 - Warrior 5 - Warlock 6 - Priest 7 - Druid 8 - Rogue 9 - Hunter 10 - Paladin 11 - Shaman 13 - заклинания вызываемые использованием consumable-предметов + вещей, обладающих всячеcкими Healing, Absorbtion и подобными способностями 0 - всё остальное
164 + 165 | SpellFamilyFlags | Integer(64) | Значение определяющее соответствие заклинания. В основном используется талантами (EffectItemType, #106) для определения того, на какие заклинания влиять Modifier-аурами.
166 | MaxAffectedTargets | Integer | Максимальное число целей, которые могут быть подвержены влиянию заклинания.
167 | DmgClass | Integer | Класс повреждений. Значения: 0 - Нет 1 - Magic 2 - Melee 3 - Ranged
168 | ??? | Integer | Не используется. Значения: 0, 1, 2.
169 | ??? | Integer | Не используется. Значения от -1 до 7.
170 | DmgMultiplier_1 | Float |
171 | DmgMultiplier_2 | Float |
172 | DmgMultiplier_3 | Float |
173 | ??? | Integer | Не используется.
174 | ??? | Integer | Не используется.
175 | ??? | String | Не используется. Для заклинания #26869 (Amorous) это Word of Recall (OLD), в остальных случаях пусто.
176 | TotemCategory_1 | Integer | TotemCategory.dbc
177 | TotemCategory_2 | Integer |
178 | AreaId | Integer | AreaTable.dbc


SpellFocusObject.dbc

SpellFocusObject.dbc

Для версии: 2.0.12

Описание

Объекты (ГО), которые должны находиться в радиусе для каста некоторых спеллов.

Структура

Столбец | Поле | Тип | Описание
1 | ID | Integer | "
2 | Title_1 | String | Название объекта
3 | Title_2 | String | NULL
4 | Title_3 | String | NULL
5 | Title_4 | String | NULL
6 | Title_5 | String | NULL
7 | Title_6 | String | NULL
8 | Title_7 | String | NULL
9 | Title_8 | String | NULL
10 | TitleFlags | Integer | "


WorldSafeLocs.dbc

WorldSafeLocs.dbc

Для версии: 2.4.2

Описание

Таблица, хранит в себе набор данных о спирит хеалерах.

ID | Map ID | X | Y | Z | Name
1 | 0 | -9115 | 423 | 96 | Stormwind
2 | 0 | -9271 | -2305 | 71 | Redridge Mountains
3 | 0 | -10774.263 | -1189.672 | 33.149 | Duskwood, Darkshire
4 | 0 | -10546.9 | 1197.24 | 31.726 | Westfall, Sentinel Hill
5 | 0 | -5687 | -515 | 398 | Dun Morogh
6 | 0 | -5351.229 | -2881.582 | 340.942 | Loch Modan, Thelsamar
7 | 0 | -3289.124 | -2435.991 | 18.597 | Wetlands, Crossroads
8 | 0 | -6289.911 | -3493.108 | 251.483 | Badlands, Graveyard NE
10 | 1 | -592.601 | -2523.492 | 91.788 | The Barrens, The Crossroads
31 | 1 | -1443.488 | 1973.37 | 85.491 | Desolace, Ghost Walker Post
32 | 1 | 233.458 | -4793.73 | 10.188 | Durotar, Razor Hill
33 | 1 | 1357.1 | -4412.01 | 28.384 | Durotar, Orgrimmar
34 | 1 | -2944.556 | -153.215 | 65.786 | Mulgore, Red Cloud Mesa
35 | 1 | 6739.19 | 209.993 | 23.285 | Darkshore, Auberdine
36 | 0 | -11110.377 | -1833.241 | 71.864 | Deadwind Pass, Morgan's Plot
39 | 1 | -4656 | -1765 | -41 | Thousand Needles, The Great Lift
49 | 37 | -661.528 | -485.309 | 385.888 | Plains of Snow - Horde Start
70 | 1 | -6432.256 | -278.292 | 3.794 | Silithus, Valor's Rest
89 | 1 | -2175.19 | -342.027 | -5.512 | Mulgore, Bloodhoof Village
90 | 1 | 10054.3 | 2117.12 | 1329.63 | Teldrassil, Darnassus
91 | 1 | 9701.255 | 945.62 | 1291.355 | Teldrassil, Dolanaar
92 | 1 | 2633.411 | -629.735 | 107.581 | Ashenvale, Astranaar
93 | 1 | 10384.81 | 811.531 | 1317.538 | Teldrassil, Aldrassil
94 | 0 | 1882.94 | 1629.11 | 94.418 | Tirisfal Glades, Deathknell
96 | 0 | 1822.61 | 214.674 | 60.14 | Tirisfal Glades, Undercity
97 | 0 | 516.194 | 1589.807 | 127.545 | Silverpine Forest, The Sepulcher
98 | 0 | -18.678 | -981.171 | 55.838 | Hillsbrad Foothills, Tarren Mill
99 | 0 | -1472.289 | -2617.959 | 49.277 | Arathi Highlands
100 | 0 | -6164.226 | 336.321 | 399.793 | Dun Morogh, Anvilmar
101 | 0 | -5680.044 | -518.92 | 396.274 | Dun Morogh, Kharanos
102 | 0 | -5049.45 | -809.697 | 495.127 | Dun Morogh, Ironforge
103 | 0 | -6805 | -2287.19 | 280.752 | Badlands, Kargath
104 | 0 | -9403.245 | -2037.692 | 58.369 | Redridge Mountains, Lakeshire
105 | 0 | -8935.325 | -188.646 | 80.416 | Elwynn Forest, Northshire
106 | 0 | -9339.456 | 171.408 | 61.562 | Elwynn Forest, Goldshire
107 | 0 | -9151.98 | 410.944 | 92.697 | Elwynn Forest, Stormwind
108 | 0 | -10567.813 | -3377.203 | 22.253 | Swamp of Sorrows, Stonard
109 | 0 | -14284.962 | 288.447 | 32.332 | Stranglethorn Vale, Booty Bay
129 | 1 | 8706 | 965 | 13.27 | Teldrassil, Rut'theran Village
149 | 0 | -732.799 | -592.502 | 22.663 | Hillsbrad Foothills, Southshore
169 | 30 | -157.409 | 31.206 | 77.051 | Alterac Valley, Snowfall Graveyard (Mid)
189 | 1 | -3525.706 | -4315.455 | 6.996 | Dustwallow Marsh, Theramore Isle
209 | 1 | -7190.949 | -3944.652 | 9.227 | Tanaris, Gadgetzan
229 | 1 | -2517.75 | -1972.64 | 91.784 | The Barrens, Camp Taurajo
249 | 1 | -1081.4 | -3478.68 | 63.607 | The Barrens, Ratchet
269 | 37 | -448.189 | -1027.863 | 430.724 | Plains of Snow - Alliance Start
289 | 0 | 2348.67 | 492.027 | 33.367 | Tirisfal Glades, Brill
309 | 1 | -4596.404 | 3229.434 | 8.994 | Feralas, Feathermoon Stronghold
310 | 1 | -4439.967 | 370.153 | 51.357 | Feralas, Camp Mojache
329 | 1 | -5530.283 | -3459.28 | -45.744 | Thousand Needles, Shimmering Flats
349 | 0 | 323.513 | -2227.196 | 137.617 | The Hinterlands, Aerie Peak
369 | 1 | 2681.058 | -4009.754 | 107.849 | Azshara, Talrendis Point
370 | 0 | -10846.574 | -2949.488 | 13.227 | Blasted Lands, Dreadmaul Hold
389 | 0 | -11542.56 | -228.637 | 27.843 | Stranglethorn Vale, Northern Stranglethorn
409 | 1 | 898.261 | 434.53 | 65.728 | Stonetalon Mountains, Webwinder Path
429 | 0 | 2604.52 | -543.39 | 89 | Tirisfal Glades, Faol's Rest
449 | 1 | 3806.54 | -1600.291 | 218.831 | Felwood, Morlos'Aran
450 | 1 | -7205.565 | -2436.674 | -218.161 | Un'Goro Crater, The Marshlands
469 | 1 | 4291.283 | 96.956 | 43.075 | Darkshore, Twilight Vale
489 | 0 | -3347.72 | -856.713 | 1.06 | Wetlands, Baradin Bay
509 | 0 | 908.323 | -1520.286 | 55.037 | Western Plaguelands, Chillwind Camp
510 | 0 | 2116.79 | -5287.337 | 81.132 | Eastern Plaguelands, Light's Hope Chapel
511 | 1 | 6875.76 | -4661.54 | 701.094 | Winterspring, Everlook
512 | 1 | 2421.724 | -2953.619 | 123.473 | Ashenvale, Kargathia
529 | 451 | 16310.325 | 16268.939 | 69.444 | Programmer Isle
549 | 451 | 16223.823 | 16278.573 | 20.891 | Programmer Isle
569 | 0 | 1750.344 | -669.79 | 44.57 | Western Plaguelands, Bulwark
589 | 1 | 16310.325 | 16268.939 | 69.444 | GM Island
609 | 1 | 2942.76 | -6037.13 | 5.17 | Azshara, Southridge Beach
610 | 30 | -1437.67 | -610.089 | 51.162 | Alterac Valley, Horde Safe
611 | 30 | 873.002 | -491.284 | 96.542 | Alterac Valley, Alliance Safe
629 | 0 | 908.323 | -1520.286 | 55.037 | TEST for GM Client Only - Do Not Bug
630 | 1 | 4788.78 | -6845 | 89.79 | Azshara, Legash Encampment
631 | 1 | -3127.69 | -3046.94 | 33.831 | Dustwallow Marsh, Brackenwall Village
632 | 0 | -7490.45 | -2132.62 | 142.186 | Burning Steppes, Flame Crest
633 | 1 | 7426 | -2809 | 464 | Moonglade
634 | 0 | 1392 | -3701 | 77 | Eastern Plaguelands, Darrowshire
635 | 1 | 5935.47 | -1217.75 | 383.202 | Felwood, Irontree Woods
636 | 0 | -6450.61 | -1113.51 | 308.022 | Searing Gorge, Thorium Point
649 | 1 | -778 | -4985 | 19 | Durotar, Sen'jin Village
669 | 451 | 16614.811 | 16662.979 | 21.342 | Programmer Isle, Bucklers Cemetery 2
670 | 451 | 16620.74 | 16622.701 | 21.338 | Programmer Isle, Bucklers Cemetery 1
671 | 451 | 16619.52 | 16577.455 | 43.902 | Programmer Isle, Bucklers Cemetery 3
689 | 30 | 676 | -374 | 30 | Alterac Valley, Stormpike Graveyard (Hi)
690 | 30 | -1090.477 | -253.309 | 57.672 | Alterac Valley, Frostwolf Graveyard (Lo)
709 | 1 | -634.635 | -4296.034 | 40.525 | Durotar, Valley of Trials
729 | 30 | 73.418 | -496.433 | 48.732 | Alterac Valley, PvP Alliance Choke Graveyard (A-choke)
749 | 30 | -531.218 | -405.231 | 49.551 | Alterac Valley, PvP Horde Choke Graveyard (H-choke)
750 | 30 | -1496.065 | -333.338 | 101.135 | Alterac Valley, Frostwolf Relief Hut (H-base)
751 | 30 | 643 | 44 | 69.74 | Alterac Valley, Stormpike Aid Station (A-base)
769 | 489 | 1523.812 | 1481.758 | 352.008 | Warsong Gulch - Alliance Enter Loc
770 | 489 | 933.331 | 1433.724 | 345.536 | Warsong Gulch - Horde Enter Loc
771 | 489 | 1415.33 | 1554.79 | 343.156 | Warsong Gulch - Alliance Rez Loc
772 | 489 | 1029.14 | 1387.49 | 340.836 | Warsong Gulch - Horde Rez Loc
789 | 0 | -291 | -4374 | 107 | The Hinterlands, The Overlook Cliffs
809 | 1 | 1035.27 | -2104.28 | 122.945 | Warsong Gulch - Horde Exit Loc
810 | 1 | 1459.17 | -1858.67 | 124.762 | Warsong Gulch - Alliance Exit Loc
829 | 0 | 101.144 | -184.934 | 127.344 | Alterac Valley, Alliance Exit
830 | 0 | 536.495 | -1085.72 | 106.27 | Alterac Valley, Horde Exit
849 | 1 | -4590.409 | 1632.081 | 93.974 | Feralas, Dire Maul
850 | 1 | 1177.78 | -4464.24 | 21.354 | Durotar, Northern Durotar
851 | 1 | -981.917 | -74.646 | 20.126 | Mulgore, Thunder Bluff
852 | 0 | -5165.52 | -874.664 | 507.177 | Dun Morogh, Gates of Ironforge
853 | 0 | 1780.11 | 221.761 | 59.617 | Tirisfal Glades, Ruins of Lordaeron
854 | 0 | -9552.46 | -1374.05 | 51.233 | Elwynn Forest, Eastvale Logging Camp
869 | 0 | 1236.89 | -2411.99 | 60.68 | Western Plaguelands, Caer Darrow
889 | 529 | 684.014 | 681.22 | -12.916 | Arathi Basin - Horde Entrance
890 | 529 | 1313.9 | 1310.74 | -9.01 | Arathi Basin - Alliance Entrance
891 | 0 | -831.881 | -3518.52 | 72.483 | Arathi Basin - Horde Exit
892 | 0 | -1215.59 | -2531.75 | 21.673 | Arathi Basin - Alliance Exit
893 | 529 | 834.726 | 784.979 | -57.082 | Arathi Basin - Graveyard, H-Mid (Farm)
894 | 529 | 1016.588 | 955.185 | -42.829 | Arathi Basin - Graveyard, Mid (Blacksmith)
895 | 529 | 1201.87 | 1163.131 | -56.286 | Arathi Basin - Graveyard, A-Mid (Stables)
896 | 529 | 1211.524 | 781.557 | -82.71 | Arathi Basin - Graveyard, ALT-N (Gold Mine)
897 | 529 | 772.756 | 1213.114 | 15.797 | Arathi Basin - Graveyard, ALT-S (Lumber Mill)
898 | 529 | 1354.7 | 1270.27 | -11.129 | Arathi Basin - Graveyard, A-Base (Trollbane Hall)
899 | 529 | 713.71 | 638.364 | -10.6 | Arathi Basin - Graveyard, H-Base (Defiler's Den)
909 | 0 | 2647.55 | -4014.39 | 105.938 | Eastern Plaguelands, Blackwood Lake
910 | 1 | -6831.317 | 891.437 | 33.866 | Silithus, Cenarion Hold
911 | 0 | -10606.8 | 294.048 | 31.801 | Duskwood, Ravenhill
912 | 530 | 10458.548 | -6364.614 | 39.791 | Eversong Woods, Sunstrider Isle
913 | 1 | -7991.574 | 1557.804 | 4.974 | Silithus, Scarab Wall (AQ Only)
914 | 530 | 8936.564 | -7439.903 | 82.086 | Eversong Woods, Farstrider Lodge GY
915 | 530 | 7694.177 | -6730.11 | 48.291 | Ghostlands, Tranquillien
916 | 530 | 7015.226 | -7299.999 | 45.425 | Ghostlands, Sanctum
917 | 530 | 6730.494 | -7936.893 | 170.099 | Ghostlands, Amani Pass
918 | 530 | -4123.139 | -13660.072 | 74.6 | Azuremyst Isle, Ammen Vale
919 | 530 | 158.06 | 2562.73 | 75.781 | Hellfire Peninsula, Thrallmar
920 | 530 | -803.012 | 2702.592 | 106.758 | Hellfire Peninsula, Honor Hold
921 | 530 | 9407 | -6847.67 | 16 | Eversong Woods, Silvermoon City
922 | 530 | 8709.459 | -6671.761 | 70.336 | Eversong Woods, Fairbreeze GY
923 | 530 | -4312.775 | -12441.044 | 17.19 | Azuremyst, Azure Watch GY
924 | 530 | -3324.306 | -12089.911 | 28.275 | Azuremystv Stillpine GY
925 | 530 | -2020.59 | -11983.505 | 33.248 | Bloodmyst, Blood Watch GY
926 | 530 | -1754.207 | -11067.315 | 76.342 | Bloodmyst, Wilderness GY
927 | 0 | 1978.469 | -3655.885 | 119.795 | Eastern Plaguelands, Graveyard CG Tower
928 | 530 | 335.886 | 7625.117 | 22.749 | Zangarmarsh, Zabra'jin GY
929 | 559 | 4027.602 | 2972.784 | 12.072 | Nagrand Arena, Team 2 Start
930 | 530 | -2495.866 | 6802.258 | 21.371 | Nagrand, SE Graveyard
931 | 451 | 16423 | 16237 | 71 | Programmer Isle
932 | 451 | 16223.823 | 16278.573 | 20.891,Programmer Isle
933 | 530 | 181.475 | 4361.576 | 116.885 | Hellfire Peninsula, Temple
934 | 530 | -695.875 | 4118.209 | 64.487 | Hellfire Peninsula, Falcon Watch
935 | 530 | 742.628 | 2887.709 | 8.901 | Hellfire Peninsula, Corpse Location 004
936 | 559 | 4085.45 | 2866.829 | 12.4 | Nagrand Arena, Team 1 Start
937 | 559 | 4055.848 | 2921.782 | 50.339,Reuse
938 | 0 | 101.144 | -184.934 | 127.344 | Alterac Valley, Alliance Exit
939 | 562 | 6292.659 | 288.579 | 4.959 | Blade's Edge Arena, Team 1
940 | 562 | 6184.982 | 236.011 | 4.977 | Blade's Edge Arena, Team 2
941 | 530 | 540.31 | 3932.88 | 188.932 | Hellfire Peninsula, Test Corpse Location
942 | 530 | 540.98 | 3144.226 | 8.457 | Hellfire Peninsula, Corpse Location 001
943 | 530 | 582.864 | 2954.064 | 4.564 | Hellfire Peninsula, Corpse Location 002
944 | 530 | 742.628 | 2887.709 | 8.901 | Hellfire Peninsula, Corpse Location 003
945 | 530 | 1148.442 | 1798.138 | 116.296 | Hellfire Peninsula, Corpse Location 005
946 | 530 | 851.694 | 1688.062 | 89.757 | Hellfire Peninsula, Corpse Location 006
947 | 530 | 608.097 | 1778.634 | 104.436 | Hellfire Peninsula, Corpse Location 007
948 | 530 | 354.618 | 1952.75 | 23.765 | Hellfire Peninsula, Corpse Location 008
949 | 530 | 107.712 | 1841.231 | 21.884 | Hellfire Peninsula, Corpse Location 009
950 | 530 | 274.599 | 1674.626 | -5.776 | Hellfire Peninsula, Corpse Location 010
951 | 530 | 60.881 | 1542.688 | 17.083 | Hellfire Peninsula, Corpse Location 011
952 | 530 | -92.832 | 1350.91 | -12.203 | Hellfire Peninsula, Corpse Location 012
953 | 530 | 134.528 | 1230.394 | 2.397 | Hellfire Peninsula, Corpse Location 013
954 | 530 | 298.666 | 1225.227 | -1.179 | Hellfire Peninsula, Corpse Location 014
955 | 530 | 386.682 | 1044.776 | 26.873 | Hellfire Peninsula, Corpse Location 015
956 | 530 | 337.84 | 853.218 | 13.885 | Hellfire Peninsula, Corpse Location 016
957 | 530 | 60.384 | 725.155 | 14.585 | Hellfire Peninsula, Corpse Location 017
958 | 530 | -213.512 | 730.684 | -0.831 | Hellfire Peninsula, Corpse Location 018
959 | 530 | -570.327 | 675.785 | -0.704 | Hellfire Peninsula, Corpse Location 019
960 | 530 | -958.584 | 803.907 | 2.535 | Hellfire Peninsula, Corpse Location 020
961 | 530 | -827.569 | 1194.339 | 16.285 | Hellfire Peninsula, Corpse Location 021
962 | 530 | -465.075 | 1272.105 | 12.389 | Hellfire Peninsula, Corpse Location 022
963 | 530 | -668.975 | 1516.192 | 17.996 | Hellfire Peninsula, Corpse Location 023
964 | 530 | -1278.367 | 1381.712 | 9.105 | Hellfire Peninsula, Corpse Location 024
965 | 530 | -1306.278 | 2478.398 | 56.809 | Hellfire Peninsula, Corpse Location 025
966 | 530 | -1497.398 | 2657.169 | -53.175 | Hellfire Peninsula, Corpse Location 026
967 | 530 | -1445.698 | 3050.235 | -16.828 | Hellfire Peninsula, Corpse Location 027
968 | 530 | -1510.359 | 3281.807 | -16.864 | Hellfire Peninsula, Corpse Location 028
969 | 530 | 248.339 | 7084.928 | 36.493 | Zangarmarsh, PvP GY
970 | 530 | 211.315 | 6200.033 | 22.299 | Zangarmarsh, Telredor GY
971 | 562 | 6238.93 | 262.963 | 0.89 | Blades Edge - PvP - Arena Graveyard
972 | 530 | 1286.725 | 7883.123 | 10.222 | Zangarmarsh, Corpse Location 006
973 | 530 | -212.452 | 5579.672 | 22.178 | Zangarmarsh, Cenarion GY
974 | 530 | 1011.161 | 5039.573 | -26.825 | Zangarmarsh, Corpse Location 001
975 | 530 | 781.713 | 4987.825 | -12.366 | Zangarmarsh, Corpse Location 002
976 | 530 | 1001.895 | 5714.57 | -9.303 | Zangarmarsh, Corpse Location 003
977 | 530 | 1394.982 | 7756.503 | 12.29 | Zangarmarsh, Corpse Location 004
978 | 530 | 1412.409 | 8430.121 | -4.68 | Zangarmarsh, Corpse Location 008
979 | 530 | 1398.578 | 7763.029 | 8.546 | Zangarmarsh, Corpse Location 005
980 | 530 | 1317.495 | 8135.392 | -2.857 | Zangarmarsh, Corpse Location 007
981 | 530 | 1706.28 | 8407.813 | -24.773 | Zangarmarsh, Corpse Location 009
982 | 530 | 1348.12 | 8677.566 | 6.869 | Zangarmarsh, Corpse Location 011
983 | 530 | 1838.928 | 8496.514 | -19.025 | Zangarmarsh, Corpse Location 010
984 | 530 | 1347.021 | 8679.227 | 6.672 | Zangarmarsh, Corpse Location 012
985 | 530 | 1104.395 | 8781.982 | -10.889 | Zangarmarsh, Corpse Location 013
986 | 530 | 747.447 | 8702.898 | 6.109 | Zangarmarsh, Corpse Location 014
987 | 530 | 381.31 | 9113.738 | -4.272 | Zangarmarsh, Corpse Location 016
988 | 530 | 702.758 | 8927.527 | -2.821 | Zangarmarsh, Corpse Location 015
989 | 530 | 223.55 | 9132.744 | -11.746 | Zangarmarsh, Corpse Location 017
990 | 530 | 32.157 | 9120.396 | -17.255 | Zangarmarsh, Corpse Location 018
991 | 530 | -160.425 | 9053.544 | 5.142 | Zangarmarsh, Corpse Location 019
992 | 530 | -1066.973 | 8066.544 | -39.259 | Nagrand, Northwind Cleft
993 | 530 | -1654.373 | 7938.994 | -46.235 | Nagrand, Halaa GY
994 | 530 | -1793.416 | 4931.607 | -22.209 | Terokkar Forest, Shattrath GY
995 | 530 | -2540.152 | 3866.648 | 10.077 | Terokkar Forest, Wilderness GY
996 | 451 | 16463.219 | 16470.08 | 66.486 | Test - Programmer
997 | 451 | 16465.297 | 16460.125 | 69.444 | Test - Programmer 001
998 | 559 | 4055.504 | 2919.661 | 13.611 | Nagrand - PvP - Arena Graveyard
999 | 530 | -697.573 | 8881.731 | 185.45 | Nagrand, Corpse Location 001
1000 | 530 | -999.506 | 9045.616 | 91.591 | Nagrand, Corpse Location 002
1001 | 530 | -1933.72 | 9343.669 | 74.731 | Nagrand, Corpse Location 003
1002 | 530 | -2153.297 | 9323.707 | 52.435 | Nagrand, Corpse Location 004
1003 | 530 | -2619.463 | 8953.7 | -11.546 | Nagrand, Corpse Location 005
1004 | 530 | -2799.854 | 8785.746 | -42.494 | Nagrand, Corpse Location 006
1005 | 530 | -2984.119 | 8700.107 | -53.158 | Nagrand, Corpse Location 007
1006 | 530 | -2989.351 | 8445.129 | -36.243 | Nagrand, Corpse Location 008
1007 | 530 | -3122.556 | 8079.49 | -49.131 | Nagrand, Corpse Location 009
1008 | 530 | -3155.75 | 7316.315 | -25.86 | Nagrand, Corpse Location 010
1009 | 530 | -3244.696 | 7079.022 | -49.572 | Nagrand, Corpse Location 011
1010 | 530 | -2987.351 | 7045.469 | -54.384 | Nagrand, Corpse Location 012
1011 | 530 | -2962.328 | 6796.882 | -51.262 | Nagrand, Corpse Location 013
1012 | 530 | -3045.37 | 6508.568 | 99.655 | Nagrand, Corpse Location 014
1013 | 530 | -3379.584 | 6206.483 | -3.664 | Terokkar Forest, Corpse Location 001
1014 | 530 | -3621.983 | 6225.183 | -18.821 | Terokkar Forest, Corpse Location 002
1015 | 530 | -3898.566 | 6147.648 | -37.08 | Terokkar Forest, Corpse Location 003
1016 | 530 | -3844.336 | 5931.411 | -25.05 | Terokkar Forest, Corpse Location 004
1017 | 530 | -3801.34 | 5618.751 | -26.917 | Terokkar Forest, Corpse Location 005
1018 | 530 | -3910.985 | 5404.071 | -35.67 | Terokkar Forest, Corpse Location 006
1019 | 530 | -3886.286 | 5149.574 | -59.689 | Terokkar Forest, Corpse Location 007
1020 | 530 | -3990.144 | 4869.476 | -107.634 | Terokkar Forest, Corpse Location 008
1021 | 530 | -3904.296 | 4591.396 | -45.982 | Terokkar Forest, Corpse Location 009
1022 | 530 | -4024.305 | 4421.721 | -50.002 | Terokkar Forest, Corpse Location 010
1023 | 530 | -3965.061 | 4128.619 | 0.277 | Terokkar Forest, Corpse Location 011
1024 | 530 | -2415.764 | 1811.624 | -1.164 | Shadowmoon, Corpse Location 001
1025 | 530 | -2319.128 | 1749.945 | -13.345 | Shadowmoon, Corpse Location 002
1026 | 530 | -2447.421 | 1612.805 | -27.232 | Shadowmoon, Corpse Location 003
1027 | 530 | -2650.239 | 1666.659 | 10.094 | Shadowmoon, Corpse Location 004
1028 | 530 | -4151.091 | 3425.816 | 293.05 | Terokkar Forest, Corpse Location 016
1029 | 530 | -2648.267 | 3020.655 | -13.213 | Terokkar Forest, Corpse Location 017
1030 | 530 | -2375.42 | 2848.075 | -69.879 | Terokkar Forest, Corpse Location 018
1031 | 530 | -2205.609 | 2968.304 | -69.072 | Terokkar Forest, Corpse Location 019
1032 | 530 | -2098.932 | 3116.509 | -51.31 | Terokkar Forest, Corpse Location 020
1033 | 530 | -2047.739 | 3278.562 | -61.831 | Terokkar Forest, Corpse Location 021
1034 | 530 | -2058.995 | 3560.385 | -74.502 | Terokkar Forest, Corpse Location 022
1035 | 530 | -1876.504 | 3700.502 | -19.742 | Terokkar Forest, Corpse Location 023
1036 | 530 | 0 | 0 | 0 | Reuse
1037 | 530 | -1289.794 | 9166.722 | 218.081 | Nagrand, Portal Plateau
1038 | 530 | -856.214 | 6600.061 | 173.753 | Nagrand, Elemental Plateau
1039 | 530 | -2033.528 | 8479.527 | -0.312 | Nagrand, SW Graveyard
1040 | 530 | 700.091 | 2207.991 | 288.518 | Hellfire Peninsula, Throne of Kil'Jaedan
1041 | 530 | -249.765 | 1023.319 | 54.325 | Hellfire Peninsula, Dark Portal
1042 | 530 | -3562.406 | 4666.442 | -21.986 | Terokkar Forest, Bone Wastes GY
1043 | 530 | 874.911 | 7284.72 | 23.017 | Zangarmarsh, Harborage GY
1044 | 530 | 337.125 | 8616.865 | 24.156 | Zangarmarsh, Sporeggar GY
1045 | 530 | 4363.881 | 3093.743 | 132.97 | Netherstorm, Stormspire GY
1046 | 530 | 3032.437 | 3594.28 | 145.818 | Netherstorm, Area 52 GY
1047 | 530 | -2999.227 | 2439.06 | 62.313 | Shadowmoon Valley, Shadowmoon Village GY
1048 | 530 | -4022.988 | 2048.58 | 96.894 | Shadowmoon Valley, Wildhammer GY
1049 | 530 | 1955.904 | 6768.811 | 164.061 | Blade's Edge, Sylvanaar GY
1050 | 530 | 2218.901 | 6017.354 | 135.921 | Blade's Edge, Thunderlord GY
1051 | 530 | -3942.589 | 3686.287 | 286.76 | Terokkar Forest, Skettis GY
1052 | 530 | -2652.662 | 1484.209 | 23.243 | Shadowmoon, Corpse Location 005
1053 | 530 | -2477.686 | 1386.238 | 47.264 | Shadowmoon, Corpse Location 006
1054 | 530 | -2459.082 | 1277.568 | 33.37 | Shadowmoon, Corpse Location 007
1055 | 530 | -2464.278 | 1074.655 | 33.7 | Shadowmoon, Corpse Location 008
1056 | 530 | -2597.449 | 1040.724 | 40.007 | Shadowmoon, Corpse Location 009
1057 | 530 | -2753.667 | 966.146 | -3.374 | Shadowmoon, Corpse Location 010
1058 | 530 | -2721.158 | 711.034 | -21.301 | Shadowmoon, Corpse Location 011
1059 | 530 | -2752.543 | 509.309 | -25.644 | Shadowmoon, Corpse Location 012
1060 | 530 | -3004.488 | 482.051 | -15.396 | Shadowmoon, Corpse Location 013
1061 | 530 | -2997.384 | 207.579 | 3.167 | Shadowmoon, Corpse Location 014
1062 | 530 | -4084.617 | 120.513 | 63.095 | Shadowmoon, Corpse Location 015
1063 | 530 | -4231.622 | 58.627 | 7.604 | Shadowmoon, Corpse Location 016
1064 | 530 | -4445.808 | 224.844 | 93.542 | Shadowmoon, Corpse Location 017
1065 | 530 | -4507.595 | 553.553 | 124.258 | Shadowmoon, Corpse Location 018
1066 | 530 | -4445.426 | 863.558 | 6.452 | Shadowmoon, Corpse Location 019
1067 | 530 | -4791.516 | 1082.184 | -8.867 | Shadowmoon, Corpse Location 020
1068 | 530 | -4618.168 | 1850.606 | 153.439 | Shadowmoon, Corpse Location 021
1069 | 530 | -4568.143 | 2023.798 | 90.063 | Shadowmoon, Corpse Location 022
1070 | 530 | -4541.319 | 2281.759 | 17.795 | Shadowmoon, Corpse Location 023
1071 | 530 | -4408.892 | 2328.78 | 31.213 | Shadowmoon, Corpse Location 024
1072 | 530 | 1932.998 | 7389.176 | 364.888 | Blade's Edge, Corpse Location 000
1073 | 530 | 2356.31 | 7345.093 | 363.309 | Blade's Edge, Corpse Location 001
1074 | 530 | 2818.311 | 7269.72 | 364.234 | Blade's Edge, Corpse Location 002
1075 | 530 | 3199.991 | 7264.964 | 146.66 | Blade's Edge, Corpse Location 003
1076 | 530 | 3432.887 | 7312.378 | 138.648 | Blade's Edge, Corpse Location 004
1077 | 530 | 3753.245 | 7118.026 | 141.142 | Blade's Edge, Corpse Location 005
1078 | 530 | 3797.193 | 6900.236 | 142.429 | Blade's Edge, Corpse Location 006
1079 | 530 | 3839.148 | 6586.807 | 135.094 | Blade's Edge, Corpse Location 007
1080 | 530 | 3482.779 | 6487.127 | 134.426 | Blade's Edge, Corpse Location 008
1081 | 530 | 3656.614 | 6208.107 | 272.701 | Blade's Edge, Corpse Location 009
1082 | 530 | 3995.325 | 6092.064 | 262.343 | Blade's Edge, Corpse Location 010
1083 | 530 | 4095.108 | 5811.886 | 259.762 | Blade's Edge, Corpse Location 011
1084 | 530 | 4153.549 | 5508.917 | 272.112 | Blade's Edge, Corpse Location 012
1085 | 530 | 4120.706 | 5214.146 | 264.988 | Blade's Edge, Corpse Location 013
1086 | 530 | 4086.354 | 4849.898 | 267.429 | Blade's Edge, Corpse Location 014
1087 | 530 | 3926.204 | 4825.278 | 264.982 | Blade's Edge, Corpse Location 015
1088 | 530 | 3731.115 | 4738.445 | 240.943 | Blade's Edge, Corpse Location 016
1089 | 530 | 3455.314 | 4468.35 | 154.243 | Blade's Edge, Corpse Location 017
1090 | 530 | 3323.599 | 4503.877 | 152.405 | Blade's Edge, Corpse Location 018
1091 | 530 | 2877.525 | 4738.905 | 278.725 | Blade's Edge, Corpse Location 019
1092 | 530 | 2653.003 | 5100.261 | 275.459 | Blade's Edge, Corpse Location 020
1093 | 530 | 2344.619 | 5072.5 | 268.165 | Blade's Edge, Corpse Location 021
1094 | 530 | 2251.085 | 4907.941 | 140.958 | Blade's Edge, Corpse Location 022
1095 | 530 | 2274.353 | 4725.426 | 159.451 | Blade's Edge, Corpse Location 023
1096 | 530 | 2102.656 | 4685.081 | 139.953 | Blade's Edge, Corpse Location 024
1097 | 530 | 1914.582 | 4677.853 | 133.28 | Blade's Edge, Corpse Location 025
1098 | 530 | 1771.943 | 4585.165 | 144.923 | Blade's Edge, Corpse Location 026
1099 | 530 | 1621.036 | 4563.139 | 137.265 | Blade's Edge, Corpse Location 027
1100 | 530 | 1606.357 | 4792.579 | 138.085 | Blade's Edge, Corpse Location 028
1101 | 530 | 1596.314 | 4948.648 | 169.669 | Blade's Edge, Corpse Location 029
1102 | 530 | 1616.903 | 5077.052 | 174.761 | Blade's Edge, Corpse Location 030
1103 | 566 | 2523.686 | 1596.597 | 1269.348 | Netherstorm BG - Graveyard (Alliance Start)
1104 | 566 | 1807.736 | 1539.416 | 1267.627 | Netherstorm BG - Graveyard (Horde Start)
1105 | 566 | 2013.062 | 1677.238 | 1182.126 | Netherstorm BG - Graveyard (Felreaver)
1106 | 566 | 2012.403 | 1455.412 | 1172.202 | Netherstorm BG - Graveyard (BE Tower)
1107 | 566 | 2351.785 | 1455.399 | 1185.333 | Netherstorm BG - Graveyard (Draenei Tower)
1108 | 566 | 2355.298 | 1683.714 | 1173.154 | Netherstorm BG - Graveyard (Human Tower)
1109 | 566 | 2626.898 | 1457.847 | 1225.536 | Netherstorm BG - Corpse Catcher 000
1110 | 566 | 2603.99 | 1695.964 | 1229.464 | Netherstorm BG - Corpse Catcher 001
1111 | 566 | 2495.96 | 1402.39 | 1204.588 | Netherstorm BG - Corpse Catcher 002
1112 | 566 | 2541.247 | 1787.237 | 1187.976 | Netherstorm BG - Corpse Catcher 003
1113 | 566 | 2353.734 | 1336.662 | 1192.144 | Netherstorm BG - Corpse Catcher 004
1114 | 566 | 2368.347 | 1800.785 | 1166.335 | Netherstorm BG - Corpse Catcher 005
1115 | 566 | 2253.473 | 1298.661 | 1188.844 | Netherstorm BG - Corpse Catcher 006
1116 | 566 | 2227.599 | 1819.579 | 1151.61 | Netherstorm BG - Corpse Catcher 007
1117 | 566 | 2047.889 | 1324.838 | 1170.765 | Netherstorm BG - Corpse Catcher 008
1118 | 566 | 2057.311 | 1848.257 | 1192.269 | Netherstorm BG - Corpse Catcher 009
1119 | 566 | 1914.77 | 1381.502 | 1175.387 | Netherstorm BG - Corpse Catcher 010
1120 | 566 | 1918.943 | 1766.295 | 1194.124 | Netherstorm BG - Corpse Catcher 011
1121 | 566 | 1796.215 | 1341.522 | 1188.567 | Netherstorm BG - Corpse Catcher 012
1122 | 566 | 1808.187 | 1726.816 | 1206.021 | Netherstorm BG - Corpse Catcher 013
1123 | 566 | 1724.505 | 1405.741 | 1208.55 | Netherstorm BG - Corpse Catcher 014
1124 | 566 | 1692.782 | 1672.565 | 1225.528 | Netherstorm BG - Corpse Catcher 015
1125 | 566 | 2121.787 | 1670.498 | 1169.267 | Netherstorm BG - Corpse Catcher 016
1126 | 566 | 2111.424 | 1441.817 | 1163.869 | Netherstorm BG - Corpse Catcher 017
1127 | 566 | 2213.185 | 1469.543 | 1175.014 | Netherstorm BG - Corpse Catcher 018
1128 | 566 | 2226.599 | 1692.81 | 1161.845 | Netherstorm BG - Corpse Catcher 019
1129 | 566 | 2174.898 | 1594.506 | 1126.51 | Netherstorm BG - Corpse Catcher 020
1130 | 566 | 2173.64 | 1534.452 | 1129.239 | Netherstorm BG - Corpse Catcher 021
1131 | 566 | 2213.83 | 1328.191 | 1178.458 | Netherstorm BG - Corpse Catcher 022
1132 | 566 | 2113.42 | 1326.882 | 1153.995 | Netherstorm BG - Corpse Catcher 023
1133 | 566 | 2117.21 | 1807.682 | 1171.555 | Netherstorm BG - Corpse Catcher 024
1134 | 530 | 3491.415 | 4127.388 | 119.837 | Netherstorm - Corpse Catcher 000
1135 | 530 | 3578.555 | 3957.098 | 117.999 | Netherstorm - Corpse Catcher 001
1136 | 530 | 3586.964 | 3717.307 | 115.593 | Netherstorm - Corpse Catcher 002
1137 | 530 | 3640.771 | 3522.842 | 104.122 | Netherstorm - Corpse Catcher 003
1138 | 530 | 3520.196 | 3511.703 | 125.437 | Netherstorm - Corpse Catcher 004
1139 | 530 | 3399.305 | 3400.409 | 101.826 | Netherstorm - Corpse Catcher 005
1140 | 530 | 3271.49 | 3366.921 | 105.214 | Netherstorm - Corpse Catcher 006
1141 | 530 | 3188.366 | 3257.081 | 88.973 | Netherstorm - Corpse Catcher 007
1142 | 530 | 3022.791 | 3163.705 | 118.336 | Netherstorm - Corpse Catcher 008
1143 | 530 | 2943.656 | 3056.638 | 112.724 | Netherstorm - Corpse Catcher 009
1144 | 530 | 2846.521 | 2955.54 | 113.508 | Netherstorm - Corpse Catcher 010
1145 | 530 | 2815.297 | 2830.886 | 76.017 | Netherstorm - Corpse Catcher 011
1146 | 530 | 2695.051 | 2940.241 | 94.983 | Netherstorm - Corpse Catcher 012
1147 | 530 | 2570.5 | 3135.964 | 107.749 | Netherstorm - Corpse Catcher 013
1148 | 530 | 2511.976 | 3275.155 | 99.749 | Netherstorm - Corpse Catcher 014
1149 | 530 | 2449.934 | 3377.494 | 115.303 | Netherstorm - Corpse Catcher 015
1150 | 530 | 2519.661 | 3538.7 | 120.574 | Netherstorm - Corpse Catcher 016
1151 | 530 | 2479.837 | 3695.679 | 106.209 | Netherstorm - Corpse Catcher 017
1152 | 530 | 2433.441 | 3835.277 | 94.94 | Netherstorm - Corpse Catcher 018
1153 | 530 | 2403.43 | 3995.291 | 99.267 | Netherstorm - Corpse Catcher 019
1154 | 530 | 2477.41 | 4151.272 | 113.695 | Netherstorm - Corpse Catcher 020
1155 | 530 | 2535.257 | 4396.421 | 103.322 | Netherstorm - Corpse Catcher 021
1156 | 530 | 2710.519 | 4440.323 | 105.852 | Netherstorm - Corpse Catcher 022
1157 | 530 | 2916.155 | 4444.488 | 111.442 | Netherstorm - Corpse Catcher 023
1158 | 530 | 3069.101 | 4357.14 | 119.069 | Netherstorm - Corpse Catcher 024
1159 | 530 | 3091.804 | 4146.839 | 126.162 | Netherstorm - Corpse Catcher 025
1160 | 530 | 3221.168 | 4069.098 | 103.294 | Netherstorm - Corpse Catcher 026
1161 | 530 | 3355.789 | 4149.285 | 137.783 | Netherstorm - Corpse Catcher 027
1162 | 530 | 3980.612 | 4262.213 | 130.059 | Netherstorm - Corpse Catcher 028
1163 | 530 | 3802.701 | 4204.433 | 108.911 | Netherstorm - Corpse Catcher 029
1164 | 530 | 3766.714 | 4008.229 | 116.788 | Netherstorm - Corpse Catcher 030
1165 | 530 | 3796.267 | 3772.185 | 100.545 | Netherstorm - Corpse Catcher 031
1166 | 530 | 4049.615 | 3692.781 | 101.573 | Netherstorm - Corpse Catcher 032
1167 | 530 | 4152.527 | 3886.205 | 121.304 | Netherstorm - Corpse Catcher 033
1168 | 530 | 4235.157 | 4080.622 | 95.367 | Netherstorm - Corpse Catcher 034
1169 | 530 | 4169.833 | 4209.064 | 118.711 | Netherstorm - Corpse Catcher 035
1170 | 530 | 3836.078 | 3477.26 | 75.526 | Netherstorm - Corpse Catcher 036
1171 | 530 | 3994.947 | 3538.268 | 122.008 | Netherstorm - Corpse Catcher 037
1172 | 530 | 4211.398 | 3632.001 | 124.109 | Netherstorm - Corpse Catcher 038
1173 | 530 | 4395.243 | 3708.615 | 96.616 | Netherstorm - Corpse Catcher 039
1174 | 530 | 4580.691 | 3584 | 94 | Netherstorm - Corpse Catcher 040
1175 | 530 | 4793.192 | 3527.374 | 102.164 | Netherstorm - Corpse Catcher 041
1176 | 530 | 4903.714 | 3323.859 | 101.089 | Netherstorm - Corpse Catcher 042
1177 | 530 | 4945.869 | 3110.829 | 98.219 | Netherstorm - Corpse Catcher 043
1178 | 530 | 5156.753 | 2974.214 | 75.555 | Netherstorm - Corpse Catcher 044
1179 | 530 | 5204.699 | 2868.108 | 54.304 | Netherstorm - Corpse Catcher 045
1180 | 530 | 5019.972 | 2798.727 | 52.089 | Netherstorm - Corpse Catcher 046
1181 | 530 | 4885.182 | 2663.13 | 85.241 | Netherstorm - Corpse Catcher 047
1182 | 530 | 4853.174 | 2354.017 | 101.279 | Netherstorm - Corpse Catcher 048
1183 | 530 | 4680.812 | 2287.479 | 129.446 | Netherstorm - Corpse Catcher 049
1184 | 530 | 4522.445 | 2280.277 | 136.924 | Netherstorm - Corpse Catcher 050
1185 | 530 | 4436.573 | 2485.477 | 90.371 | Netherstorm - Corpse Catcher 051
1186 | 530 | 4448.295 | 2658.147 | 111.356 | Netherstorm - Corpse Catcher 052
1187 | 530 | 4285.063 | 2837.04 | 100.8 | Netherstorm - Corpse Catcher 053
1188 | 530 | 4136.619 | 2699.332 | 101.025 | Netherstorm - Corpse Catcher 054
1189 | 530 | 3975.243 | 2807.436 | 115.88 | Netherstorm - Corpse Catcher 055
1190 | 530 | 3931.786 | 3020.667 | 104.802 | Netherstorm - Corpse Catcher 056
1191 | 530 | 3895.876 | 3257.64 | 120.552 | Netherstorm - Corpse Catcher 057
1192 | 530 | 3629.359 | 3095.109 | 112.238 | Netherstorm - Corpse Catcher 058
1193 | 530 | 3476.446 | 3293.56 | 94.866 | Netherstorm - Corpse Catcher 059
1194 | 530 | 3348.41 | 3172.063 | 91.689 | Netherstorm - Corpse Catcher 060
1195 | 530 | 3216.284 | 2992.535 | 124.764 | Netherstorm - Corpse Catcher 061
1196 | 530 | 3022.813 | 2892.907 | 90.243 | Netherstorm - Corpse Catcher 062
1197 | 530 | 2860.469 | 2735.281 | 86.18 | Netherstorm - Corpse Catcher 063
1198 | 530 | 2863.803 | 2537.41 | 105.193 | Netherstorm - Corpse Catcher 064
1199 | 530 | 2856.084 | 2297.04 | 98.816 | Netherstorm - Corpse Catcher 065
1200 | 530 | 2834.86 | 2040.241 | 92.689 | Netherstorm - Corpse Catcher 066
1201 | 530 | 2868.811 | 1848.694 | 96.861 | Netherstorm - Corpse Catcher 067
1202 | 530 | 2895.752 | 1708.091 | 105.79 | Netherstorm - Corpse Catcher 068
1203 | 530 | 3110.675 | 1624.432 | 112.817 | Netherstorm - Corpse Catcher 069
1204 | 530 | 3276.015 | 1726.586 | 101.628 | Netherstorm - Corpse Catcher 070
1205 | 530 | 3332.26 | 1986.97 | 94.534 | Netherstorm - Corpse Catcher 071
1206 | 530 | 3315.851 | 2185.522 | 108.392 | Netherstorm - Corpse Catcher 072
1207 | 530 | 3384.582 | 2376.219 | 73.512 | Netherstorm - Corpse Catcher 073
1208 | 530 | 3492.838 | 2570.839 | 138.484 | Netherstorm - Corpse Catcher 074
1209 | 530 | 3590.413 | 2677.079 | 134.967 | Netherstorm - Corpse Catcher 075
1210 | 530 | 3740.939 | 2696.993 | 112.495 | Netherstorm - Corpse Catcher 076
1211 | 530 | 3737.85 | 2894.691 | 100.461 | Netherstorm - Corpse Catcher 077
1212 | 530 | 3862.946 | 2554.456 | 80.621 | Netherstorm - Corpse Catcher 078
1213 | 530 | 3648.265 | 2414.609 | 75.899 | Netherstorm - Corpse Catcher 079
1214 | 530 | 3546.971 | 2219.758 | 92.165 | Netherstorm - Corpse Catcher 080
1215 | 530 | 3550.01 | 2002.349 | 92.284 | Netherstorm - Corpse Catcher 081
1216 | 530 | 3509.692 | 1762.49 | 75.382 | Netherstorm - Corpse Catcher 082
1217 | 530 | 3645.263 | 1712.665 | 106.519 | Netherstorm - Corpse Catcher 083
1218 | 530 | 3681.177 | 1558.56 | 103.064 | Netherstorm - Corpse Catcher 084
1219 | 530 | 3775.548 | 1437.536 | -152.872 | Netherstorm - Corpse Catcher 085
1220 | 530 | 3969.014 | 1336.414 | -143.469 | Netherstorm - Corpse Catcher 086
1221 | 530 | 4166.448 | 1329.147 | -149.744 | Netherstorm - Corpse Catcher 087
1222 | 530 | 4199.538 | 1484.236 | -127.523 | Netherstorm - Corpse Catcher 088
1223 | 530 | 4258.283 | 1672.845 | 113.502 | Netherstorm - Corpse Catcher 089
1224 | 530 | 4362.233 | 1927.158 | 95.641 | Netherstorm - Corpse Catcher 090
1225 | 530 | 4347.15 | 2143.361 | 116.927 | Netherstorm - Corpse Catcher 091
1226 | 530 | 4246.958 | 2450.754 | 91.295 | Netherstorm - Corpse Catcher 092
1227 | 530 | 4117.149 | 2332.295 | 103.107 | Netherstorm - Corpse Catcher 093
1228 | 530 | 3975.805 | 2437.473 | 114.278 | Netherstorm - Corpse Catcher 094
1229 | 530 | 2501.339 | 1983.391 | 84.34 | Netherstorm - Corpse Catcher 095
1230 | 530 | 2573.346 | 2127.095 | 98.822 | Netherstorm - Corpse Catcher 096
1231 | 530 | 2648.163 | 2353.629 | 93.283 | Netherstorm - Corpse Catcher 097
1232 | 530 | 2659.245 | 2547.139 | 110.084 | Netherstorm - Corpse Catcher 098
1233 | 530 | 2587.893 | 2711.604 | 110.037 | Netherstorm - Corpse Catcher 099
1234 | 530 | 2473.627 | 2964.976 | 106.742 | Netherstorm - Corpse Catcher 100
1235 | 530 | 2209.183 | 2901.677 | 93.664 | Netherstorm - Corpse Catcher 101
1236 | 530 | 2164.32 | 2667.395 | 78.448 | Netherstorm - Corpse Catcher 102
1237 | 530 | 2078.212 | 2405.502 | 65.878 | Netherstorm - Corpse Catcher 103
1238 | 530 | 2079.816 | 2227.039 | 67.655 | Netherstorm - Corpse Catcher 104
1239 | 530 | 2240.179 | 2067.796 | 61.749 | Netherstorm - Corpse Catcher 105
1240 | 530 | 552.188 | 1995.149 | 103.702 | Hellfire Peninsula, Force Camps (Alliance)
1241 | 530 | 3065.004 | 5426.416 | 148.39 | Blade's Edge, Evergrove GY
1242 | 530 | 3872.659 | 5514.406 | 271.977 | Blade's Edge, North Ridge GY
1243 | 530 | 2296.352 | 7023.231 | 364.117 | Blade's Edge, West Ridge GY
1244 | 530 | 2312.272 | 5083.93 | 272.449 | Blade's Edge, East Ridge GY
1245 | 566 | 0 | 0 | 0 | zzOLDNetherstorm BG - Graveyard (Alliance Default)
1246 | 0 | 101.144 | -184.934 | 127.344 | Alterac Valley, Alliance Exit
1247 | 530 | 2980.192 | 1869.825 | 143.607 | Netherstorm, Cosmowrench GY
1248 | 530 | -1272.425 | 2436.846 | 64.097 | Hellfire Peninsula, Spinebreaker GY
1249 | 1 | -8159.508 | -4628.704 | -124.747 | Tanaris, CoT
1250 | 530 | -3134.536 | 719.484 | -20.636 | Shadowmoon Valley, Altar GY
1251 | 530 | -4117.032 | 1058.258 | 31.566 | Shadowmoon Valley, Sanctum GY
1252 | 530 | 2362.672 | 2327.414 | 106.18 | Netherstorm, Kirin'Var GY
1253 | 530 | 2011.386 | 5575.786 | 262.717 | Blade's Edge, Toshley GY
1254 | 530 | 3522.843 | 6821.624 | 140.879 | Blade's Edge, Raven Wood GY
1255 | 530 | 3447.313 | 4803.822 | 260.213 | Blade's Edge, NE Ridge GY
1256 | 0 | -382.911 | 1117.416 | 84.37 | Silverpine Forest, South GY
1257 | 530 | -1148.085 | 5897.62 | 188.337 | Terokkar Forest, Ogre GY
1258 | 572 | 1277.869 | 1744.902 | 32.5 | Lordaeron, PVP - Team 1 Start
1259 | 572 | 1295.126 | 1586.444 | 32.5 | Lordaeron, PVP - Team 2 Start
1260 | 572 | 1285.811 | 1667.897 | 39.958 | Lordaeron, PVP - Graveyard
1261 | 530 | -3524.267 | 619.528 | 4.665 | Black Temple, Alliance GY
1262 | 530 | -3624.933 | 600.007 | 11.669 | Black Temple, Horde GY
1263 | 530 | 3621.868 | 6519.529 | 124.339 | Blade's Edge, Corpse Location 031
1264 | 1 | -4032.403 | -3414.031 | 38.524 | Dustwallow Marsh, Tabetha's
1265 | 1 | -4632.786 | -3129.434 | 34.942 | Dustwallow Marsh, Mudsprocket
1277 | 1 | -7351.044 | -1315.887 | -261.603 | Un'Goro Crater, Central GY
1278 | 1 | -6160.057 | -1142.426 | -217.769 | Un'Goro Crater, Marshal's GY
1279 | 1 | 475.685 | 1469.865 | 9.631 | Stonetalon Mountains, Charred Vale
1280 | 1 | 2729.906 | 1286.635 | 292.467 | Stonetalon Mountains, Peak GY
1281 | 1 | -7754.158 | -4971.896 | 5.913 | Tanaris, Pirate GY
1282 | 1 | -8591.798 | -3629.755 | 13.556 | Tanaris, Central GY
1283 | 1 | 5633.333 | -4759.588 | 777.713 | Winterspring, South GY
1284 | 1 | 6499.586 | -2384.342 | 589.849 | Winterspring, West GY
1285 | 0 | 791.432 | -419.449 | 136.572 | Alterac Mountains, Central GY
1286 | 0 | 1839.768 | -2149.685 | 67.493 | Western Plaguelands, Central GY
1287 | 0 | -6867.313 | -1539.838 | 241.815 | Searing Gorge, SE GY
1288 | 0 | -7100.897 | -3488.386 | 241.925 | Badlands, South GY
1289 | 1 | -3973.53 | -2014.486 | 96.362 | The Barrens, South GY
1291 | 530 | -1424.37 | 4359.581 | 241.566 | Terokkar Forest, Razorthorn Rise GY
1292 | 530 | 12851.755 | -6854.801 | 11.861 | Isle of Quel'Danas, Staging Area GY
1293 | 530 | 12851.755 | -6854.801 | 11.861 | Isle of Quel'Danas, Staging Area GY
1298 | 530 | -2433.643 | 4660.969 | 160.883 | Terokkar Forest, Lake Jorune GY


Опкоды Сервера авторизации

        AUTH_LOGON_CHALLENGE = 0x00,
        AUTH_LOGON_PROOF = 0x01,
        AUTH_RECONNECT_CHALLENGE = 0x02,
        AUTH_RECONNECT_PROOF = 0x03,
        REALM_LIST = 0x10,
        XFER_INITIATE = 0x30,
        XFER_DATA = 0x31,
        XFER_ACCEPT = 0x32,
        XFER_RESUME = 0x33,
        XFER_CANCEL = 0x34,


Опокоды Сервера Мира

         MSG_NULL_ACTION = 0,
        CMSG_BOOTME = 1,
        CMSG_DBLOOKUP = 2,
        SMSG_DBLOOKUP = 3,
        CMSG_QUERY_OBJECT_POSITION = 4,
        SMSG_QUERY_OBJECT_POSITION = 5,
        CMSG_QUERY_OBJECT_ROTATION = 6,
        SMSG_QUERY_OBJECT_ROTATION = 7,
        CMSG_WORLD_TELEPORT = 8,
        CMSG_TELEPORT_TO_UNIT = 9,
        CMSG_ZONE_MAP = 10,
        SMSG_ZONE_MAP = 11,
        CMSG_DEBUG_CHANGECELLZONE = 12,
        CMSG_MOVE_CHARACTER_CHEAT = 13,
        SMSG_MOVE_CHARACTER_CHEAT = 14,
        CMSG_RECHARGE = 15,
        CMSG_LEARN_SPELL = 16,
        CMSG_CREATEMONSTER = 17,
        CMSG_DESTROYMONSTER = 18,
        CMSG_CREATEITEM = 19,
        CMSG_CREATEGAMEOBJECT = 20,
        SMSG_CHECK_FOR_BOTS = 21,
        CMSG_MAKEMONSTERATTACKGUID = 22,
        CMSG_BOT_DETECTED2 = 23,
        CMSG_FORCEACTION = 24,
        CMSG_FORCEACTIONONOTHER = 25,
        CMSG_FORCEACTIONSHOW = 26,
        SMSG_FORCEACTIONSHOW = 27,
        CMSG_PETGODMODE = 28,
        SMSG_PETGODMODE = 29,
        SMSG_REFER_A_FRIEND_EXPIRED = 30,
        CMSG_WEATHER_SPEED_CHEAT = 31,
        CMSG_UNDRESSPLAYER = 32,
        CMSG_BEASTMASTER = 33,
        CMSG_GODMODE = 34,
        SMSG_GODMODE = 35,
        CMSG_CHEAT_SETMONEY = 36,
        CMSG_LEVEL_CHEAT = 37,
        CMSG_PET_LEVEL_CHEAT = 38,
        CMSG_SET_WORLDSTATE = 39,
        CMSG_COOLDOWN_CHEAT = 40,
        CMSG_USE_SKILL_CHEAT = 41,
        CMSG_FLAG_QUEST = 42,
        CMSG_FLAG_QUEST_FINISH = 43,
        CMSG_CLEAR_QUEST = 44,
        CMSG_SEND_EVENT = 45,
        CMSG_DEBUG_AISTATE = 46,
        SMSG_DEBUG_AISTATE = 47,
        CMSG_DISABLE_PVP_CHEAT = 48,
        CMSG_ADVANCE_SPAWN_TIME = 49,
        /// <summary>
        /// pguid
        /// pguid
        /// pguid
        /// int
        /// int spellId
        /// </summary>
        SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 50,
        CMSG_AUTH_SRP6_BEGIN = 51,
        CMSG_AUTH_SRP6_PROOF = 52,
        CMSG_AUTH_SRP6_RECODE = 53,
        CMSG_CHAR_CREATE = 54,
        CMSG_CHAR_ENUM = 55,
        CMSG_CHAR_DELETE = 56,
        SMSG_AUTH_SRP6_RESPONSE = 57,
        SMSG_CHAR_CREATE = 58,
        SMSG_CHAR_ENUM = 59,
        SMSG_CHAR_DELETE = 60,
        CMSG_PLAYER_LOGIN = 61,
        SMSG_NEW_WORLD = 62,
        SMSG_TRANSFER_PENDING = 63,
        SMSG_TRANSFER_ABORTED = 64,
        SMSG_CHARACTER_LOGIN_FAILED = 65,
        SMSG_LOGIN_SETTIMESPEED = 66,
        SMSG_GAMETIME_UPDATE = 67,
        CMSG_GAMETIME_SET = 68,
        SMSG_GAMETIME_SET = 69,
        CMSG_GAMESPEED_SET = 70,
        SMSG_GAMESPEED_SET = 71,
        CMSG_SERVERTIME = 72,
        SMSG_SERVERTIME = 73,
        CMSG_PLAYER_LOGOUT = 74,
        CMSG_LOGOUT_REQUEST = 75,
        SMSG_LOGOUT_RESPONSE = 76,
        SMSG_LOGOUT_COMPLETE = 77,
        CMSG_LOGOUT_CANCEL = 78,
        SMSG_LOGOUT_CANCEL_ACK = 79,
        CMSG_NAME_QUERY = 80,
        SMSG_NAME_QUERY_RESPONSE = 81,
        CMSG_PET_NAME_QUERY = 82,
        SMSG_PET_NAME_QUERY_RESPONSE = 83,
        CMSG_GUILD_QUERY = 84,
        SMSG_GUILD_QUERY_RESPONSE = 85,
        CMSG_ITEM_QUERY_SINGLE = 86,
        CMSG_ITEM_QUERY_MULTIPLE = 87,
        SMSG_ITEM_QUERY_SINGLE_RESPONSE = 88,
        SMSG_ITEM_QUERY_MULTIPLE_RESPONSE = 89,
        CMSG_PAGE_TEXT_QUERY = 90,
        SMSG_PAGE_TEXT_QUERY_RESPONSE = 91,
        CMSG_QUEST_QUERY = 92,
        SMSG_QUEST_QUERY_RESPONSE = 93,
        CMSG_GAMEOBJECT_QUERY = 94,
        SMSG_GAMEOBJECT_QUERY_RESPONSE = 95,
        CMSG_CREATURE_QUERY = 96,
        SMSG_CREATURE_QUERY_RESPONSE = 97,
        CMSG_WHO = 98,
        SMSG_WHO = 99,
        CMSG_WHOIS = 100,
        SMSG_WHOIS = 101,
        CMSG_CONTACT_LIST = 102,
        SMSG_CONTACT_LIST = 103,
        SMSG_FRIEND_STATUS = 104,
        CMSG_ADD_FRIEND = 105,
        CMSG_DEL_FRIEND = 106,
        CMSG_SET_CONTACT_NOTES = 107,
        CMSG_ADD_IGNORE = 108,
        CMSG_DEL_IGNORE = 109,
        CMSG_GROUP_INVITE = 110,
        SMSG_GROUP_INVITE = 111,
        CMSG_GROUP_CANCEL = 112,
        SMSG_GROUP_CANCEL = 113,
        CMSG_GROUP_ACCEPT = 114,
        CMSG_GROUP_DECLINE = 115,
        SMSG_GROUP_DECLINE = 116,
        CMSG_GROUP_UNINVITE = 117,
        CMSG_GROUP_UNINVITE_GUID = 118,
        SMSG_GROUP_UNINVITE = 119,
        CMSG_GROUP_SET_LEADER = 120,
        SMSG_GROUP_SET_LEADER = 121,
        CMSG_LOOT_METHOD = 122,
        CMSG_GROUP_DISBAND = 123,
        SMSG_GROUP_DESTROYED = 124,
        SMSG_GROUP_LIST = 125,
        SMSG_PARTY_MEMBER_STATS = 126,
        SMSG_PARTY_COMMAND_RESULT = 127,
        UMSG_UPDATE_GROUP_MEMBERS = 128,
        CMSG_GUILD_CREATE = 129,
        CMSG_GUILD_INVITE = 130,
        SMSG_GUILD_INVITE = 131,
        CMSG_GUILD_ACCEPT = 132,
        CMSG_GUILD_DECLINE = 133,
        SMSG_GUILD_DECLINE = 134,
        CMSG_GUILD_INFO = 135,
        SMSG_GUILD_INFO = 136,
        CMSG_GUILD_ROSTER = 137,
        SMSG_GUILD_ROSTER = 138,
        CMSG_GUILD_PROMOTE = 139,
        CMSG_GUILD_DEMOTE = 140,
        CMSG_GUILD_LEAVE = 141,
        CMSG_GUILD_REMOVE = 142,
        CMSG_GUILD_DISBAND = 143,
        CMSG_GUILD_LEADER = 144,
        CMSG_GUILD_MOTD = 145,
        SMSG_GUILD_EVENT = 146,
        SMSG_GUILD_COMMAND_RESULT = 147,
        UMSG_UPDATE_GUILD = 148,
        CMSG_MESSAGECHAT = 149,
        SMSG_MESSAGECHAT = 150,
        CMSG_JOIN_CHANNEL = 151,
        CMSG_LEAVE_CHANNEL = 152,
        SMSG_CHANNEL_NOTIFY = 153,
        CMSG_CHANNEL_LIST = 154,
        SMSG_CHANNEL_LIST = 155,
        CMSG_CHANNEL_PASSWORD = 156,
        CMSG_CHANNEL_SET_OWNER = 157,
        CMSG_CHANNEL_OWNER = 158,
        CMSG_CHANNEL_MODERATOR = 159,
        CMSG_CHANNEL_UNMODERATOR = 160,
        CMSG_CHANNEL_MUTE = 161,
        CMSG_CHANNEL_UNMUTE = 162,
        CMSG_CHANNEL_INVITE = 163,
        CMSG_CHANNEL_KICK = 164,
        CMSG_CHANNEL_BAN = 165,
        CMSG_CHANNEL_UNBAN = 166,
        CMSG_CHANNEL_ANNOUNCEMENTS = 167,
        CMSG_CHANNEL_MODERATE = 168,
        SMSG_UPDATE_OBJECT = 169,
        SMSG_DESTROY_OBJECT = 170,
        CMSG_USE_ITEM = 171,
        CMSG_OPEN_ITEM = 172,
        CMSG_READ_ITEM = 173,
        SMSG_READ_ITEM_OK = 174,
        SMSG_READ_ITEM_FAILED = 175,
        SMSG_ITEM_COOLDOWN = 176,
        CMSG_GAMEOBJ_USE = 177,
        CMSG_DESTROY_ITEMS = 178,
        SMSG_GAMEOBJECT_CUSTOM_ANIM = 179,
        CMSG_AREATRIGGER = 180,
        MSG_MOVE_START_FORWARD = 181,
        MSG_MOVE_START_BACKWARD = 182,
        MSG_MOVE_STOP = 183,
        MSG_MOVE_START_STRAFE_LEFT = 184,
        MSG_MOVE_START_STRAFE_RIGHT = 185,
        MSG_MOVE_STOP_STRAFE = 186,
        MSG_MOVE_JUMP = 187,
        MSG_MOVE_START_TURN_LEFT = 188,
        MSG_MOVE_START_TURN_RIGHT = 189,
        MSG_MOVE_STOP_TURN = 190,
        MSG_MOVE_START_PITCH_UP = 191,
        MSG_MOVE_START_PITCH_DOWN = 192,
        MSG_MOVE_STOP_PITCH = 193,
        MSG_MOVE_SET_RUN_MODE = 194,
        MSG_MOVE_SET_WALK_MODE = 195,
        MSG_MOVE_TOGGLE_LOGGING = 196,
        MSG_MOVE_TELEPORT = 197,
        MSG_MOVE_TELEPORT_CHEAT = 198,
        MSG_MOVE_TELEPORT_ACK = 199,
        MSG_MOVE_TOGGLE_FALL_LOGGING = 200,
        MSG_MOVE_FALL_LAND = 201,
        MSG_MOVE_START_SWIM = 202,
        MSG_MOVE_STOP_SWIM = 203,
        MSG_MOVE_SET_RUN_SPEED_CHEAT = 204,
        MSG_MOVE_SET_RUN_SPEED = 205,
        MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT = 206,
        MSG_MOVE_SET_RUN_BACK_SPEED = 207,
        MSG_MOVE_SET_WALK_SPEED_CHEAT = 208,
        MSG_MOVE_SET_WALK_SPEED = 209,
        MSG_MOVE_SET_SWIM_SPEED_CHEAT = 210,
        MSG_MOVE_SET_SWIM_SPEED = 211,
        MSG_MOVE_SET_SWIM_BACK_SPEED_CHEAT = 212,
        MSG_MOVE_SET_SWIM_BACK_SPEED = 213,
        MSG_MOVE_SET_ALL_SPEED_CHEAT = 214,
        MSG_MOVE_SET_TURN_RATE_CHEAT = 215,
        MSG_MOVE_SET_TURN_RATE = 216,
        MSG_MOVE_TOGGLE_COLLISION_CHEAT = 217,
        MSG_MOVE_SET_FACING = 218,
        MSG_MOVE_SET_PITCH = 219,
        MSG_MOVE_WORLDPORT_ACK = 220,
        SMSG_MONSTER_MOVE = 221,
        SMSG_MOVE_WATER_WALK = 222,
        SMSG_MOVE_LAND_WALK = 223,
        MSG_MOVE_SET_RAW_POSITION_ACK = 224,
        CMSG_MOVE_SET_RAW_POSITION = 225,
        SMSG_FORCE_RUN_SPEED_CHANGE = 226,
        CMSG_FORCE_RUN_SPEED_CHANGE_ACK = 227,
        SMSG_FORCE_RUN_BACK_SPEED_CHANGE = 228,
        CMSG_FORCE_RUN_BACK_SPEED_CHANGE_ACK = 229,
        SMSG_FORCE_SWIM_SPEED_CHANGE = 230,
        CMSG_FORCE_SWIM_SPEED_CHANGE_ACK = 231,
        SMSG_FORCE_MOVE_ROOT = 232,
        CMSG_FORCE_MOVE_ROOT_ACK = 233,
        SMSG_FORCE_MOVE_UNROOT = 234,
        CMSG_FORCE_MOVE_UNROOT_ACK = 235,
        MSG_MOVE_ROOT = 236,
        MSG_MOVE_UNROOT = 237,
        MSG_MOVE_HEARTBEAT = 238,
        SMSG_MOVE_KNOCK_BACK = 239,
        CMSG_MOVE_KNOCK_BACK_ACK = 240,
        MSG_MOVE_KNOCK_BACK = 241,
        SMSG_MOVE_FEATHER_FALL = 242,
        SMSG_MOVE_NORMAL_FALL = 243,
        SMSG_MOVE_SET_HOVER = 244,
        SMSG_MOVE_UNSET_HOVER = 245,
        CMSG_MOVE_HOVER_ACK = 246,
        MSG_MOVE_HOVER = 247,
        CMSG_TRIGGER_CINEMATIC_CHEAT = 248,
        CMSG_OPENING_CINEMATIC = 249,
        SMSG_TRIGGER_CINEMATIC = 250,
        CMSG_NEXT_CINEMATIC_CAMERA = 251,
        CMSG_COMPLETE_CINEMATIC = 252,
        SMSG_TUTORIAL_FLAGS = 253,
        CMSG_TUTORIAL_FLAG = 254,
        CMSG_TUTORIAL_CLEAR = 255,
        CMSG_TUTORIAL_RESET = 256,
        CMSG_STANDSTATECHANGE = 257,
        CMSG_EMOTE = 258,
        SMSG_EMOTE = 259,
        CMSG_TEXT_EMOTE = 260,
        SMSG_TEXT_EMOTE = 261,
        CMSG_AUTOEQUIP_GROUND_ITEM = 262,
        CMSG_AUTOSTORE_GROUND_ITEM = 263,
        CMSG_AUTOSTORE_LOOT_ITEM = 264,
        CMSG_STORE_LOOT_IN_SLOT = 265,
        CMSG_AUTOEQUIP_ITEM = 266,
        CMSG_AUTOSTORE_BAG_ITEM = 267,
        CMSG_SWAP_ITEM = 268,
        CMSG_SWAP_INV_ITEM = 269,
        CMSG_SPLIT_ITEM = 270,
        CMSG_AUTOEQUIP_ITEM_SLOT = 271,
        OBSOLETE_DROP_ITEM = 272,
        CMSG_DESTROYITEM = 273,
        SMSG_INVENTORY_CHANGE_FAILURE = 274,
        SMSG_OPEN_CONTAINER = 275,
        CMSG_INSPECT = 276,
        SMSG_INSPECT = 277,
        CMSG_INITIATE_TRADE = 278,
        CMSG_BEGIN_TRADE = 279,
        CMSG_BUSY_TRADE = 280,
        CMSG_IGNORE_TRADE = 281,
        CMSG_ACCEPT_TRADE = 282,
        CMSG_UNACCEPT_TRADE = 283,
        CMSG_CANCEL_TRADE = 284,
        CMSG_SET_TRADE_ITEM = 285,
        CMSG_CLEAR_TRADE_ITEM = 286,
        CMSG_SET_TRADE_GOLD = 287,
        SMSG_TRADE_STATUS = 288,
        SMSG_TRADE_STATUS_EXTENDED = 289,
        SMSG_INITIALIZE_FACTIONS = 290,
        SMSG_SET_FACTION_VISIBLE = 291,
        SMSG_SET_FACTION_STANDING = 292,
        CMSG_SET_FACTION_ATWAR = 293,
        CMSG_SET_FACTION_CHEAT = 294,
        SMSG_SET_PROFICIENCY = 295,
        CMSG_SET_ACTION_BUTTON = 296,
        SMSG_ACTION_BUTTONS = 297,
        SMSG_INITIAL_SPELLS = 298,
        SMSG_LEARNED_SPELL = 299,
        SMSG_SUPERCEDED_SPELL = 300,
        CMSG_NEW_SPELL_SLOT = 301,
        CMSG_CAST_SPELL = 302,
        CMSG_CANCEL_CAST = 303,
        SMSG_CAST_FAILED = 304,
        SMSG_SPELL_START = 305,
        SMSG_SPELL_GO = 306,
        SMSG_SPELL_FAILURE = 307,
        SMSG_SPELL_COOLDOWN = 308,
        SMSG_COOLDOWN_EVENT = 309,
        CMSG_CANCEL_AURA = 310,
        //SMSG_UPDATE_AURA_DURATION_OBSOLETE = 311,
        /// <summary>
        /// Looks like it might clear out a set
        /// int setId
        /// pguid setGuid
        /// </summary>
        SMSG_EQUIPMENT_SET_SAVED = 311,
        SMSG_PET_CAST_FAILED = 312,
        MSG_CHANNEL_START = 313,
        MSG_CHANNEL_UPDATE = 314,
        CMSG_CANCEL_CHANNELLING = 315,
        SMSG_AI_REACTION = 316,
        CMSG_SET_SELECTION = 317,
        //CMSG_SET_TARGET_OBSOLETE = 318,
        /// <summary>
        /// pguid
        /// </summary>
        CMSG_DELETE_EQUIPMENT_SET = 318,
        /// <summary>
        /// Added 3.1.0.9658
        /// bool unk
        /// </summary>
        CMSG_INSTANCE_LOCK_RESPONSE = 319,
        CMSG_UNUSED2 = 320,
        CMSG_ATTACKSWING = 321,
        CMSG_ATTACKSTOP = 322,
        SMSG_ATTACKSTART = 323,
        SMSG_ATTACKSTOP = 324,
        SMSG_ATTACKSWING_NOTINRANGE = 325,
        SMSG_ATTACKSWING_BADFACING = 326,
        SMSG_ATTACKSWING_NOTSTANDING = 327,
        SMSG_ATTACKSWING_DEADTARGET = 328,
        SMSG_ATTACKSWING_CANT_ATTACK = 329,
        SMSG_ATTACKERSTATEUPDATE = 330,
        //SMSG_VICTIMSTATEUPDATE_OBSOLETE = 331,
        /// <summary>
        /// New in 3.1
        /// </summary>
        SMSG_BATTLEFIELD_PORT_DENIED = 331,
        SMSG_DAMAGE_DONE_OBSOLETE = 332,
        SMSG_DAMAGE_TAKEN_OBSOLETE = 333,
        SMSG_CANCEL_COMBAT = 334,
        SMSG_SPELLBREAKLOG = 335,
        SMSG_SPELLHEALLOG = 336,
        SMSG_SPELLENERGIZELOG = 337,
        SMSG_BREAK_TARGET = 338,
        CMSG_SAVE_PLAYER = 339,
        CMSG_SETDEATHBINDPOINT = 340,
        SMSG_BINDPOINTUPDATE = 341,
        CMSG_GETDEATHBINDZONE = 342,
        SMSG_BINDZONEREPLY = 343,
        SMSG_PLAYERBOUND = 344,
        SMSG_CLIENT_CONTROL_UPDATE = 345,
        CMSG_REPOP_REQUEST = 346,
        SMSG_RESURRECT_REQUEST = 347,
        CMSG_RESURRECT_RESPONSE = 348,
        /// <summary>
        /// 349 / 0x15D
        /// </summary>
        CMSG_LOOT = 349,
        CMSG_LOOT_MONEY = 350,
        /// <summary>
        /// 351
        /// </summary>
        CMSG_LOOT_RELEASE = 351,
        SMSG_LOOT_RESPONSE = 352,
        SMSG_LOOT_RELEASE_RESPONSE = 353,
        SMSG_LOOT_REMOVED = 354,
        SMSG_LOOT_MONEY_NOTIFY = 355,
        SMSG_LOOT_ITEM_NOTIFY = 356,
        SMSG_LOOT_CLEAR_MONEY = 357,
        SMSG_ITEM_PUSH_RESULT = 358,
        SMSG_DUEL_REQUESTED = 359,
        SMSG_DUEL_OUTOFBOUNDS = 360,
        SMSG_DUEL_INBOUNDS = 361,
        SMSG_DUEL_COMPLETE = 362,
        SMSG_DUEL_WINNER = 363,
        CMSG_DUEL_ACCEPTED = 364,
        CMSG_DUEL_CANCELLED = 365,
        SMSG_MOUNTRESULT = 366,
        SMSG_DISMOUNTRESULT = 367,
        SMSG_PUREMOUNT_CANCELLED_OBSOLETE = 368,
        CMSG_MOUNTSPECIAL_ANIM = 369,
        SMSG_MOUNTSPECIAL_ANIM = 370,
        SMSG_PET_TAME_FAILURE = 371,
        CMSG_PET_SET_ACTION = 372,
        CMSG_PET_ACTION = 373,
        CMSG_PET_ABANDON = 374,
        CMSG_PET_RENAME = 375,
        SMSG_PET_NAME_INVALID = 376,
        SMSG_PET_SPELLS = 377,
        SMSG_PET_MODE = 378,
        CMSG_GOSSIP_HELLO = 379,
        CMSG_GOSSIP_SELECT_OPTION = 380,
        SMSG_GOSSIP_MESSAGE = 381,
        SMSG_GOSSIP_COMPLETE = 382,
        CMSG_NPC_TEXT_QUERY = 383,
        SMSG_NPC_TEXT_UPDATE = 384,
        SMSG_NPC_WONT_TALK = 385,
        CMSG_QUESTGIVER_STATUS_QUERY = 386,
        SMSG_QUESTGIVER_STATUS = 387,
        CMSG_QUESTGIVER_HELLO = 388,
        SMSG_QUESTGIVER_QUEST_LIST = 389,
        CMSG_QUESTGIVER_QUERY_QUEST = 390,
        CMSG_QUESTGIVER_QUEST_AUTOLAUNCH = 391,
        SMSG_QUESTGIVER_QUEST_DETAILS = 392,
        CMSG_QUESTGIVER_ACCEPT_QUEST = 393,
        CMSG_QUESTGIVER_COMPLETE_QUEST = 394,
        SMSG_QUESTGIVER_REQUEST_ITEMS = 395,
        CMSG_QUESTGIVER_REQUEST_REWARD = 396,
        SMSG_QUESTGIVER_OFFER_REWARD = 397,
        CMSG_QUESTGIVER_CHOOSE_REWARD = 398,
        SMSG_QUESTGIVER_QUEST_INVALID = 399,
        CMSG_QUESTGIVER_CANCEL = 400,
        SMSG_QUESTGIVER_QUEST_COMPLETE = 401,
        SMSG_QUESTGIVER_QUEST_FAILED = 402,
        CMSG_QUESTLOG_SWAP_QUEST = 403,
        CMSG_QUESTLOG_REMOVE_QUEST = 404,
        SMSG_QUESTLOG_FULL = 405,
        SMSG_QUESTUPDATE_FAILED = 406,
        SMSG_QUESTUPDATE_FAILEDTIMER = 407,
        SMSG_QUESTUPDATE_COMPLETE = 408,
        SMSG_QUESTUPDATE_ADD_KILL = 409,
        SMSG_QUESTUPDATE_ADD_ITEM = 410,
        CMSG_QUEST_CONFIRM_ACCEPT = 411,
        SMSG_QUEST_CONFIRM_ACCEPT = 412,
        CMSG_PUSHQUESTTOPARTY = 413,
        CMSG_LIST_INVENTORY = 414,
        SMSG_LIST_INVENTORY = 415,
        CMSG_SELL_ITEM = 416,
        SMSG_SELL_ITEM = 417,
        CMSG_BUY_ITEM = 418,
        CMSG_BUY_ITEM_IN_SLOT = 419,
        SMSG_BUY_ITEM = 420,
        SMSG_BUY_FAILED = 421,
        CMSG_TAXICLEARALLNODES = 422,
        CMSG_TAXIENABLEALLNODES = 423,
        CMSG_TAXISHOWNODES = 424,
        SMSG_SHOWTAXINODES = 425,
        CMSG_TAXINODE_STATUS_QUERY = 426,
        SMSG_TAXINODE_STATUS = 427,
        CMSG_TAXIQUERYAVAILABLENODES = 428,
        CMSG_ACTIVATETAXI = 429,
        SMSG_ACTIVATETAXIREPLY = 430,
        SMSG_NEW_TAXI_PATH = 431,
        CMSG_TRAINER_LIST = 432,
        SMSG_TRAINER_LIST = 433,
        CMSG_TRAINER_BUY_SPELL = 434,
        SMSG_TRAINER_BUY_SUCCEEDED = 435,
        SMSG_TRAINER_BUY_FAILED = 436,
        CMSG_BINDER_ACTIVATE = 437,
        SMSG_PLAYERBINDERROR = 438,
        CMSG_BANKER_ACTIVATE = 439,
        SMSG_SHOW_BANK = 440,
        CMSG_BUY_BANK_SLOT = 441,
        SMSG_BUY_BANK_SLOT_RESULT = 442,
        CMSG_PETITION_SHOWLIST = 443,
        SMSG_PETITION_SHOWLIST = 444,
        CMSG_PETITION_BUY = 445,
        CMSG_PETITION_SHOW_SIGNATURES = 446,
        SMSG_PETITION_SHOW_SIGNATURES = 447,
        CMSG_PETITION_SIGN = 448,
        SMSG_PETITION_SIGN_RESULTS = 449,
        MSG_PETITION_DECLINE = 450,
        CMSG_OFFER_PETITION = 451,
        CMSG_TURN_IN_PETITION = 452,
        SMSG_TURN_IN_PETITION_RESULTS = 453,
        CMSG_PETITION_QUERY = 454,
        SMSG_PETITION_QUERY_RESPONSE = 455,
        SMSG_FISH_NOT_HOOKED = 456,
        SMSG_FISH_ESCAPED = 457,
        CMSG_BUG = 458,
        SMSG_NOTIFICATION = 459,
        CMSG_PLAYED_TIME = 460,
        SMSG_PLAYED_TIME = 461,
        CMSG_QUERY_TIME = 462,
        SMSG_QUERY_TIME_RESPONSE = 463,
        SMSG_LOG_XPGAIN = 464,
        SMSG_AURACASTLOG = 465,
        CMSG_RECLAIM_CORPSE = 466,
        CMSG_WRAP_ITEM = 467,
        SMSG_LEVELUP_INFO = 468,
        MSG_MINIMAP_PING = 469,
        SMSG_RESISTLOG = 470,
        SMSG_ENCHANTMENTLOG = 471,
        CMSG_SET_SKILL_CHEAT = 472,
        SMSG_START_MIRROR_TIMER = 473,
        SMSG_PAUSE_MIRROR_TIMER = 474,
        SMSG_STOP_MIRROR_TIMER = 475,
        CMSG_PING = 476,
        SMSG_PONG = 477,
        SMSG_CLEAR_COOLDOWN = 478,
        SMSG_GAMEOBJECT_PAGETEXT = 479,
        CMSG_SETSHEATHED = 480,
        SMSG_COOLDOWN_CHEAT = 481,
        SMSG_SPELL_DELAYED = 482,
        CMSG_PLAYER_MACRO_OBSOLETE = 483,
        SMSG_PLAYER_MACRO_OBSOLETE = 484,
        CMSG_GHOST = 485,
        CMSG_GM_INVIS = 486,
        SMSG_INVALID_PROMOTION_CODE = 487,
        MSG_GM_BIND_OTHER = 488,
        MSG_GM_SUMMON = 489,
        SMSG_ITEM_TIME_UPDATE = 490,
        SMSG_ITEM_ENCHANT_TIME_UPDATE = 491,
        SMSG_AUTH_CHALLENGE = 492,
        CMSG_AUTH_SESSION = 493,
        SMSG_AUTH_RESPONSE = 494,
        MSG_GM_SHOWLABEL = 495,
        CMSG_PET_CAST_SPELL = 496,
        MSG_SAVE_GUILD_EMBLEM = 497,
        MSG_TABARDVENDOR_ACTIVATE = 498,
        SMSG_PLAY_SPELL_VISUAL = 499,
        CMSG_ZONEUPDATE = 500,
        SMSG_PARTYKILLLOG = 501,
        SMSG_COMPRESSED_UPDATE_OBJECT = 502,
        SMSG_PLAY_SPELL_IMPACT = 503,
        SMSG_EXPLORATION_EXPERIENCE = 504,
        CMSG_GM_SET_SECURITY_GROUP = 505,
        CMSG_GM_NUKE = 506,
        MSG_RANDOM_ROLL = 507,
        SMSG_ENVIRONMENTALDAMAGELOG = 508,
        CMSG_RWHOIS_OBSOLETE = 509,
        SMSG_RWHOIS = 510,
        MSG_LOOKING_FOR_GROUP = 511,
        CMSG_SET_LOOKING_FOR_GROUP = 512,
        CMSG_UNLEARN_SPELL = 513,
        CMSG_UNLEARN_SKILL = 514,
        SMSG_REMOVED_SPELL = 515,
        CMSG_DECHARGE = 516,
        CMSG_GMTICKET_CREATE = 517,
        SMSG_GMTICKET_CREATE = 518,
        CMSG_GMTICKET_UPDATETEXT = 519,
        SMSG_GMTICKET_UPDATETEXT = 520,
        SMSG_ACCOUNT_DATA_TIMES = 521,
        CMSG_REQUEST_ACCOUNT_DATA = 522,
        CMSG_UPDATE_ACCOUNT_DATA = 523,
        SMSG_UPDATE_ACCOUNT_DATA = 524,
        SMSG_CLEAR_FAR_SIGHT_IMMEDIATE = 525,
        SMSG_POWERGAINLOG_OBSOLETE = 526,
        CMSG_GM_TEACH = 527,
        CMSG_GM_CREATE_ITEM_TARGET = 528,
        CMSG_GMTICKET_GETTICKET = 529,
        SMSG_GMTICKET_GETTICKET = 530,
        CMSG_UNLEARN_TALENTS = 531,
        SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE = 532,
        SMSG_GAMEOBJECT_DESPAWN_ANIM = 533,
        MSG_CORPSE_QUERY = 534,
        CMSG_GMTICKET_DELETETICKET = 535,
        SMSG_GMTICKET_DELETETICKET = 536,
        SMSG_CHAT_WRONG_FACTION = 537,
        CMSG_GMTICKET_SYSTEMSTATUS = 538,
        SMSG_GMTICKET_SYSTEMSTATUS = 539,
        CMSG_SPIRIT_HEALER_ACTIVATE = 540,
        CMSG_SET_STAT_CHEAT = 541,
        SMSG_SET_REST_START_OBSOLETE = 542,
        CMSG_SKILL_BUY_STEP = 543,
        CMSG_SKILL_BUY_RANK = 544,
        CMSG_XP_CHEAT = 545,
        SMSG_SPIRIT_HEALER_CONFIRM = 546,
        CMSG_CHARACTER_POINT_CHEAT = 547,
        SMSG_GOSSIP_POI = 548,
        CMSG_CHAT_IGNORED = 549,
        CMSG_GM_VISION = 550,
        CMSG_SERVER_COMMAND = 551,
        CMSG_GM_SILENCE = 552,
        CMSG_GM_REVEALTO = 553,
        CMSG_GM_RESURRECT = 554,
        CMSG_GM_SUMMONMOB = 555,
        CMSG_GM_MOVECORPSE = 556,
        CMSG_GM_FREEZE = 557,
        CMSG_GM_UBERINVIS = 558,
        CMSG_GM_REQUEST_PLAYER_INFO = 559,
        SMSG_GM_PLAYER_INFO = 560,
        CMSG_GUILD_RANK = 561,
        CMSG_GUILD_ADD_RANK = 562,
        CMSG_GUILD_DEL_RANK = 563,
        CMSG_GUILD_SET_PUBLIC_NOTE = 564,
        CMSG_GUILD_SET_OFFICER_NOTE = 565,
        SMSG_LOGIN_VERIFY_WORLD = 566,
        CMSG_CLEAR_EXPLORATION = 567,
        CMSG_SEND_MAIL = 568,
        SMSG_SEND_MAIL_RESULT = 569,
        CMSG_GET_MAIL_LIST = 570,
        SMSG_MAIL_LIST_RESULT = 571,

        /// <summary>
        /// Requests the list of a particular BG
        /// </summary>
        CMSG_BATTLEFIELD_LIST = 572,

        /// <summary>
        /// Shows the list of all BGs (since 3.10)
        /// </summary>
        SMSG_BATTLEFIELD_LIST = 573,

        /// <summary>
        /// Obsolete
        /// </summary>
        CMSG_BATTLEFIELD_JOIN = 574,

        /// <summary>
        /// Obsolete
        /// </summary>
        SMSG_BATTLEFIELD_WIN_OBSOLETE = 575,

        /// <summary>
        /// Obsolete
        /// </summary>
        SMSG_BATTLEFIELD_LOSE_OBSOLETE = 576,
        CMSG_TAXICLEARNODE = 577,
        CMSG_TAXIENABLENODE = 578,
        CMSG_ITEM_TEXT_QUERY = 579,
        SMSG_ITEM_TEXT_QUERY_RESPONSE = 580,
        CMSG_MAIL_TAKE_MONEY = 581,
        CMSG_MAIL_TAKE_ITEM = 582,
        CMSG_MAIL_MARK_AS_READ = 583,
        CMSG_MAIL_RETURN_TO_SENDER = 584,
        CMSG_MAIL_DELETE = 585,
        CMSG_MAIL_CREATE_TEXT_ITEM = 586,
        SMSG_SPELLLOGMISS = 587,
        SMSG_SPELLLOGEXECUTE = 588,
        SMSG_DEBUGAURAPROC = 589,
        SMSG_PERIODICAURALOG = 590,
        SMSG_SPELLDAMAGESHIELD = 591,
        SMSG_SPELLNONMELEEDAMAGELOG = 592,
        CMSG_LEARN_TALENT = 593,
        SMSG_RESURRECT_FAILED = 594,
        CMSG_TOGGLE_PVP = 595,
        SMSG_ZONE_UNDER_ATTACK = 596,
        MSG_AUCTION_HELLO = 597,
        CMSG_AUCTION_SELL_ITEM = 598,
        CMSG_AUCTION_REMOVE_ITEM = 599,
        CMSG_AUCTION_LIST_ITEMS = 600,
        CMSG_AUCTION_LIST_OWNER_ITEMS = 601,
        CMSG_AUCTION_PLACE_BID = 602,
        SMSG_AUCTION_COMMAND_RESULT = 603,
        SMSG_AUCTION_LIST_RESULT = 604,
        SMSG_AUCTION_OWNER_LIST_RESULT = 605,
        SMSG_AUCTION_BIDDER_NOTIFICATION = 606,
        SMSG_AUCTION_OWNER_NOTIFICATION = 607,
        SMSG_PROCRESIST = 608,
        SMSG_STANDSTATE_CHANGE_FAILURE_OBSOLETE = 609,
        SMSG_DISPEL_FAILED = 610,
        SMSG_SPELLORDAMAGE_IMMUNE = 611,
        CMSG_AUCTION_LIST_BIDDER_ITEMS = 612,
        SMSG_AUCTION_BIDDER_LIST_RESULT = 613,
        SMSG_SET_FLAT_SPELL_MODIFIER = 614,
        SMSG_SET_PCT_SPELL_MODIFIER = 615,
        CMSG_SET_AMMO = 616,
        SMSG_CORPSE_RECLAIM_DELAY = 617,
        CMSG_SET_ACTIVE_MOVER = 618,
        CMSG_PET_CANCEL_AURA = 619,
        CMSG_PLAYER_AI_CHEAT = 620,
        CMSG_CANCEL_AUTO_REPEAT_SPELL = 621,
        MSG_GM_ACCOUNT_ONLINE = 622,
        MSG_LIST_STABLED_PETS = 623,
        CMSG_STABLE_PET = 624,
        CMSG_UNSTABLE_PET = 625,
        CMSG_BUY_STABLE_SLOT = 626,
        SMSG_STABLE_RESULT = 627,
        CMSG_STABLE_REVIVE_PET = 628,
        CMSG_STABLE_SWAP_PET = 629,
        MSG_QUEST_PUSH_RESULT = 630,
        SMSG_PLAY_MUSIC = 631,
        SMSG_PLAY_OBJECT_SOUND = 632,
        CMSG_REQUEST_PET_INFO = 633,
        CMSG_FAR_SIGHT = 634,
        SMSG_SPELLDISPELLOG = 635,
        SMSG_DAMAGE_CALC_LOG = 636,
        CMSG_ENABLE_DAMAGE_LOG = 637,
        CMSG_GROUP_CHANGE_SUB_GROUP = 638,
        CMSG_REQUEST_PARTY_MEMBER_STATS = 639,
        CMSG_GROUP_SWAP_SUB_GROUP = 640,
        CMSG_RESET_FACTION_CHEAT = 641,
        CMSG_AUTOSTORE_BANK_ITEM = 642,
        CMSG_AUTOBANK_ITEM = 643,
        MSG_QUERY_NEXT_MAIL_TIME = 644,
        SMSG_RECEIVED_MAIL = 645,
        SMSG_RAID_GROUP_ONLY = 646,
        CMSG_SET_DURABILITY_CHEAT = 647,
        CMSG_SET_PVP_RANK_CHEAT = 648,
        CMSG_ADD_PVP_MEDAL_CHEAT = 649,
        CMSG_DEL_PVP_MEDAL_CHEAT = 650,
        CMSG_SET_PVP_TITLE = 651,
        SMSG_PVP_CREDIT = 652,
        SMSG_AUCTION_REMOVED_NOTIFICATION = 653,
        CMSG_GROUP_RAID_CONVERT = 654,
        CMSG_GROUP_ASSISTANT_LEADER = 655,
        CMSG_BUYBACK_ITEM = 656,
        SMSG_SERVER_MESSAGE = 657,
        CMSG_MEETINGSTONE_JOIN = 658,
        CMSG_MEETINGSTONE_LEAVE = 659,
        CMSG_MEETINGSTONE_CHEAT = 660,
        SMSG_MEETINGSTONE_SETQUEUE = 661,
        CMSG_MEETINGSTONE_INFO = 662,
        SMSG_MEETINGSTONE_COMPLETE = 663,
        SMSG_MEETINGSTONE_IN_PROGRESS = 664,
        SMSG_MEETINGSTONE_MEMBER_ADDED = 665,
        CMSG_GMTICKETSYSTEM_TOGGLE = 666,
        CMSG_CANCEL_GROWTH_AURA = 667,
        SMSG_CANCEL_AUTO_REPEAT = 668,
        SMSG_STANDSTATE_UPDATE = 669,
        SMSG_LOOT_ALL_PASSED = 670,
        SMSG_LOOT_ROLL_WON = 671,
        CMSG_LOOT_ROLL = 672,
        SMSG_LOOT_START_ROLL = 673,
        SMSG_LOOT_ROLL = 674,
        CMSG_LOOT_MASTER_GIVE = 675,
        SMSG_LOOT_MASTER_LIST = 676,
        SMSG_SET_FORCED_REACTIONS = 677,
        SMSG_SPELL_FAILED_OTHER = 678,
        SMSG_GAMEOBJECT_RESET_STATE = 679,
        CMSG_REPAIR_ITEM = 680,
        SMSG_CHAT_PLAYER_NOT_FOUND = 681,
        MSG_TALENT_WIPE_CONFIRM = 682,
        SMSG_SUMMON_REQUEST = 683,
        CMSG_SUMMON_RESPONSE = 684,
        MSG_MOVE_TOGGLE_GRAVITY_CHEAT = 685,
        SMSG_MONSTER_MOVE_TRANSPORT = 686,
        SMSG_PET_BROKEN = 687,
        MSG_MOVE_FEATHER_FALL = 688,
        MSG_MOVE_WATER_WALK = 689,
        CMSG_SERVER_BROADCAST = 690,
        CMSG_SELF_RES = 691,
        SMSG_FEIGN_DEATH_RESISTED = 692,
        CMSG_RUN_SCRIPT = 693,
        SMSG_SCRIPT_MESSAGE = 694,
        SMSG_DUEL_COUNTDOWN = 695,
        SMSG_AREA_TRIGGER_MESSAGE = 696,
        CMSG_SHOWING_HELM = 697,
        CMSG_SHOWING_CLOAK = 698,
        SMSG_MEETINGSTONE_JOINFAILED = 699,
        SMSG_PLAYER_SKINNED = 700,
        SMSG_DURABILITY_DAMAGE_DEATH = 701,
        CMSG_SET_EXPLORATION = 702,
        CMSG_SET_ACTIONBAR_TOGGLES = 703,
        UMSG_DELETE_GUILD_CHARTER = 704,
        MSG_PETITION_RENAME = 705,
        SMSG_INIT_WORLD_STATES = 706,
        SMSG_UPDATE_WORLD_STATE = 707,
        CMSG_ITEM_NAME_QUERY = 708,
        SMSG_ITEM_NAME_QUERY_RESPONSE = 709,
        SMSG_PET_ACTION_FEEDBACK = 710,
        CMSG_CHAR_RENAME = 711,
        SMSG_CHAR_RENAME = 712,
        CMSG_MOVE_SPLINE_DONE = 713,
        CMSG_MOVE_FALL_RESET = 714,
        SMSG_INSTANCE_SAVE_CREATED = 715,
        SMSG_RAID_INSTANCE_INFO = 716,
        CMSG_REQUEST_RAID_INFO = 717,
        CMSG_MOVE_TIME_SKIPPED = 718,
        CMSG_MOVE_FEATHER_FALL_ACK = 719,
        CMSG_MOVE_WATER_WALK_ACK = 720,
        CMSG_MOVE_NOT_ACTIVE_MOVER = 721,
        SMSG_PLAY_SOUND = 722,
        CMSG_BATTLEFIELD_STATUS = 723,
        SMSG_BATTLEFIELD_STATUS = 724,
        CMSG_BATTLEFIELD_PORT = 725,
        MSG_INSPECT_HONOR_STATS = 726,
        CMSG_BATTLEMASTER_HELLO = 727,
        CMSG_MOVE_START_SWIM_CHEAT = 728,
        CMSG_MOVE_STOP_SWIM_CHEAT = 729,
        SMSG_FORCE_WALK_SPEED_CHANGE = 730,
        CMSG_FORCE_WALK_SPEED_CHANGE_ACK = 731,
        SMSG_FORCE_SWIM_BACK_SPEED_CHANGE = 732,
        CMSG_FORCE_SWIM_BACK_SPEED_CHANGE_ACK = 733,
        SMSG_FORCE_TURN_RATE_CHANGE = 734,
        CMSG_FORCE_TURN_RATE_CHANGE_ACK = 735,
        MSG_PVP_LOG_DATA = 736,
        CMSG_LEAVE_BATTLEFIELD = 737,
        CMSG_AREA_SPIRIT_HEALER_QUERY = 738,
        CMSG_AREA_SPIRIT_HEALER_QUEUE = 739,
        SMSG_AREA_SPIRIT_HEALER_TIME = 740,
        CMSG_GM_UNTEACH = 741,
        SMSG_WARDEN_DATA = 742,
        CMSG_WARDEN_DATA = 743,

        /// <summary>
        /// Error message in disguise?
        /// </summary>
        SMSG_GROUP_JOINED_BATTLEGROUND = 744,
        MSG_BATTLEGROUND_PLAYER_POSITIONS = 745,
        CMSG_PET_STOP_ATTACK = 746,
        SMSG_BINDER_CONFIRM = 747,
        SMSG_BATTLEGROUND_PLAYER_JOINED = 748,
        SMSG_BATTLEGROUND_PLAYER_LEFT = 749,
        CMSG_BATTLEMASTER_JOIN = 750,
        SMSG_ADDON_INFO = 751,
        CMSG_PET_UNLEARN = 752,
        SMSG_PET_UNLEARN_CONFIRM = 753,
        SMSG_PARTY_MEMBER_STATS_FULL = 754,
        CMSG_PET_SPELL_AUTOCAST = 755,
        SMSG_WEATHER = 756,
        SMSG_PLAY_TIME_WARNING = 757,
        SMSG_MINIGAME_SETUP = 758,
        SMSG_MINIGAME_STATE = 759,
        CMSG_MINIGAME_MOVE = 760,
        SMSG_MINIGAME_MOVE_FAILED = 761,
        SMSG_RAID_INSTANCE_MESSAGE = 762,
        SMSG_COMPRESSED_MOVES = 763,
        CMSG_GUILD_INFO_TEXT = 764,
        SMSG_CHAT_RESTRICTED = 765,
        SMSG_SPLINE_SET_RUN_SPEED = 766,
        SMSG_SPLINE_SET_RUN_BACK_SPEED = 767,
        SMSG_SPLINE_SET_SWIM_SPEED = 768,
        SMSG_SPLINE_SET_WALK_SPEED = 769,
        SMSG_SPLINE_SET_SWIM_BACK_SPEED = 770,
        SMSG_SPLINE_SET_TURN_RATE = 771,
        SMSG_SPLINE_MOVE_UNROOT = 772,
        SMSG_SPLINE_MOVE_FEATHER_FALL = 773,
        SMSG_SPLINE_MOVE_NORMAL_FALL = 774,
        SMSG_SPLINE_MOVE_SET_HOVER = 775,
        SMSG_SPLINE_MOVE_UNSET_HOVER = 776,
        SMSG_SPLINE_MOVE_WATER_WALK = 777,
        SMSG_SPLINE_MOVE_LAND_WALK = 778,
        SMSG_SPLINE_MOVE_START_SWIM = 779,
        SMSG_SPLINE_MOVE_STOP_SWIM = 780,
        SMSG_SPLINE_MOVE_SET_RUN_MODE = 781,
        SMSG_SPLINE_MOVE_SET_WALK_MODE = 782,
        CMSG_GM_NUKE_ACCOUNT = 783,
        MSG_GM_DESTROY_CORPSE = 784,
        CMSG_GM_DESTROY_ONLINE_CORPSE = 785,
        CMSG_ACTIVATETAXIEXPRESS = 786,
        SMSG_SET_FACTION_ATWAR = 787,
        SMSG_GAMETIMEBIAS_SET = 788,
        CMSG_DEBUG_ACTIONS_START = 789,
        CMSG_DEBUG_ACTIONS_STOP = 790,
        CMSG_SET_FACTION_INACTIVE = 791,
        CMSG_SET_WATCHED_FACTION = 792,
        MSG_MOVE_TIME_SKIPPED = 793,
        SMSG_SPLINE_MOVE_ROOT = 794,
        CMSG_SET_EXPLORATION_ALL = 795,
        SMSG_INVALIDATE_PLAYER = 796,
        CMSG_RESET_INSTANCES = 797,
        SMSG_INSTANCE_RESET = 798,
        SMSG_INSTANCE_RESET_FAILED = 799,
        SMSG_UPDATE_LAST_INSTANCE = 800,
        MSG_RAID_TARGET_UPDATE = 801,
        MSG_RAID_READY_CHECK = 802,
        CMSG_LUA_USAGE = 803,
        SMSG_PET_ACTION_SOUND = 804,
        SMSG_PET_DISMISS_SOUND = 805,
        SMSG_GHOSTEE_GONE = 806,
        CMSG_GM_UPDATE_TICKET_STATUS = 807,
        SMSG_GM_TICKET_STATUS_UPDATE = 808,
        MSG_SET_DUNGEON_DIFFICULTY = 809,
        CMSG_GMSURVEY_SUBMIT = 810,
        SMSG_UPDATE_INSTANCE_OWNERSHIP = 811,
        CMSG_IGNORE_KNOCKBACK_CHEAT = 812,
        SMSG_CHAT_PLAYER_AMBIGUOUS = 813,
        MSG_DELAY_GHOST_TELEPORT = 814,
        SMSG_SPELLINSTAKILLLOG = 815,
        SMSG_SPELL_UPDATE_CHAIN_TARGETS = 816,
        CMSG_CHAT_FILTERED = 817,
        SMSG_EXPECTED_SPAM_RECORDS = 818,
        SMSG_SPELLSTEALLOG = 819,
        CMSG_LOTTERY_QUERY_OBSOLETE = 820,
        SMSG_LOTTERY_QUERY_RESULT_OBSOLETE = 821,
        CMSG_BUY_LOTTERY_TICKET_OBSOLETE = 822,
        SMSG_LOTTERY_RESULT_OBSOLETE = 823,
        SMSG_CHARACTER_PROFILE = 824,
        SMSG_CHARACTER_PROFILE_REALM_CONNECTED = 825,
        SMSG_DEFENSE_MESSAGE = 826,
        SMSG_INSTANCE_DIFFICULTY = 827,
        MSG_GM_RESETINSTANCELIMIT = 828,
        SMSG_MOTD = 829,
        SMSG_MOVE_SET_FLIGHT_OBSOLETE = 830,
        SMSG_MOVE_UNSET_FLIGHT_OBSOLETE = 831,
        CMSG_MOVE_FLIGHT_ACK_OBSOLETE = 832,
        MSG_MOVE_START_SWIM_CHEAT = 833,
        MSG_MOVE_STOP_SWIM_CHEAT = 834,
        SMSG_MOVE_SET_CAN_FLY = 835,
        SMSG_MOVE_UNSET_CAN_FLY = 836,
        CMSG_MOVE_SET_CAN_FLY_ACK = 837,
        CMSG_MOVE_SET_FLY = 838,
        CMSG_SOCKET_GEMS = 839,
        CMSG_ARENA_TEAM_CREATE = 840,
        SMSG_ARENA_TEAM_COMMAND_RESULT = 841,
        UMSG_UPDATE_ARENA_TEAM_OBSOLETE = 842,
        CMSG_ARENA_TEAM_QUERY = 843,
        SMSG_ARENA_TEAM_QUERY_RESPONSE = 844,
        CMSG_ARENA_TEAM_ROSTER = 845,
        SMSG_ARENA_TEAM_ROSTER = 846,
        CMSG_ARENA_TEAM_INVITE = 847,
        SMSG_ARENA_TEAM_INVITE = 848,
        CMSG_ARENA_TEAM_ACCEPT = 849,
        CMSG_ARENA_TEAM_DECLINE = 850,
        CMSG_ARENA_TEAM_LEAVE = 851,
        CMSG_ARENA_TEAM_REMOVE = 852,
        CMSG_ARENA_TEAM_DISBAND = 853,
        CMSG_ARENA_TEAM_LEADER = 854,
        SMSG_ARENA_TEAM_EVENT = 855,
        CMSG_BATTLEMASTER_JOIN_ARENA = 856,
        MSG_MOVE_START_ASCEND = 857,
        MSG_MOVE_STOP_ASCEND = 858,
        SMSG_ARENA_TEAM_STATS = 859,
        CMSG_LFG_SET_AUTOJOIN = 860,
        CMSG_LFG_CLEAR_AUTOJOIN = 861,
        CMSG_LFM_SET_AUTOFILL = 862,
        CMSG_LFM_CLEAR_AUTOFILL = 863,
        CMSG_ACCEPT_LFG_MATCH = 864,
        CMSG_DECLINE_LFG_MATCH = 865,
        CMSG_CANCEL_PENDING_LFG = 866,
        CMSG_CLEAR_LOOKING_FOR_GROUP = 867,
        CMSG_CLEAR_LOOKING_FOR_MORE = 868,
        CMSG_SET_LOOKING_FOR_MORE = 869,
        CMSG_SET_LFG_COMMENT = 870,
        SMSG_LFG_TIMEDOUT = 871,
        SMSG_LFG_OTHER_TIMEDOUT = 872,
        SMSG_LFG_AUTOJOIN_FAILED = 873,
        SMSG_LFG_AUTOJOIN_FAILED_NO_PLAYER = 874,
        SMSG_LFG_LEADER_IS_LFM = 875,
        SMSG_LFG_UPDATE = 876,
        SMSG_LFG_UPDATE_LFM = 877,
        SMSG_LFG_UPDATE_LFG = 878,
        SMSG_LFG_UPDATE_QUEUED = 879,
        SMSG_LFG_PENDING_INVITE = 880,
        SMSG_LFG_PENDING_MATCH = 881,
        SMSG_LFG_PENDING_MATCH_DONE = 882,
        SMSG_TITLE_EARNED = 883,
        CMSG_SET_TITLE = 884,
        CMSG_CANCEL_MOUNT_AURA = 885,
        SMSG_ARENA_ERROR = 886,
        MSG_INSPECT_ARENA_TEAMS = 887,
        SMSG_DEATH_RELEASE_LOC = 888,
        CMSG_CANCEL_TEMP_ENCHANTMENT = 889,
        SMSG_FORCED_DEATH_UPDATE = 890,
        CMSG_CHEAT_SET_HONOR_CURRENCY = 891,
        CMSG_CHEAT_SET_ARENA_CURRENCY = 892,
        MSG_MOVE_SET_FLIGHT_SPEED_CHEAT = 893,
        MSG_MOVE_SET_FLIGHT_SPEED = 894,
        MSG_MOVE_SET_FLIGHT_BACK_SPEED_CHEAT = 895,
        MSG_MOVE_SET_FLIGHT_BACK_SPEED = 896,
        SMSG_FORCE_FLIGHT_SPEED_CHANGE = 897,
        CMSG_FORCE_FLIGHT_SPEED_CHANGE_ACK = 898,
        SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE = 899,
        CMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK = 900,
        SMSG_SPLINE_SET_FLIGHT_SPEED = 901,
        SMSG_SPLINE_SET_FLIGHT_BACK_SPEED = 902,
        CMSG_MAELSTROM_INVALIDATE_CACHE = 903,
        SMSG_FLIGHT_SPLINE_SYNC = 904,
        CMSG_SET_TAXI_BENCHMARK_MODE = 905,

        /// <summary>
        /// Unused
        /// </summary>
        SMSG_JOINED_BATTLEGROUND_QUEUE = 906,

        SMSG_REALM_SPLIT = 907,
        CMSG_REALM_SPLIT = 908,
        CMSG_MOVE_CHNG_TRANSPORT = 909,
        MSG_PARTY_ASSIGNMENT = 910,
        SMSG_OFFER_PETITION_ERROR = 911,
        SMSG_TIME_SYNC_REQ = 912,
        CMSG_TIME_SYNC_RESP = 913,
        CMSG_SEND_LOCAL_EVENT = 914,
        CMSG_SEND_GENERAL_TRIGGER = 915,
        CMSG_SEND_COMBAT_TRIGGER = 916,
        CMSG_MAELSTROM_GM_SENT_MAIL = 917,
        SMSG_RESET_FAILED_NOTIFY = 918,
        SMSG_REAL_GROUP_UPDATE = 919,
        SMSG_LFG_DISABLED = 920,
        CMSG_ACTIVE_PVP_CHEAT = 921,
        CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY = 922,
        SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE = 923,
        SMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY_RESPONSE_WRITE_FILE = 924,
        SMSG_UPDATE_COMBO_POINTS = 925,
        SMSG_VOICE_SESSION_ROSTER_UPDATE = 926,
        SMSG_VOICE_SESSION_LEAVE = 927,
        SMSG_VOICE_SESSION_ADJUST_PRIORITY = 928,
        CMSG_VOICE_SET_TALKER_MUTED_REQUEST = 929,
        SMSG_VOICE_SET_TALKER_MUTED = 930,
        SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE = 931,
        SMSG_SET_EXTRA_AURA_INFO_OBSOLETE = 932,
        SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE_OBSOLETE = 933,
        SMSG_CLEAR_EXTRA_AURA_INFO_OBSOLETE = 934,
        MSG_MOVE_START_DESCEND = 935,
        CMSG_IGNORE_REQUIREMENTS_CHEAT = 936,
        SMSG_IGNORE_REQUIREMENTS_CHEAT = 937,
        SMSG_SPELL_CHANCE_PROC_LOG = 938,
        CMSG_MOVE_SET_RUN_SPEED = 939,
        SMSG_DISMOUNT = 940,
        MSG_MOVE_UPDATE_CAN_FLY = 941,
        MSG_RAID_READY_CHECK_CONFIRM = 942,
        CMSG_VOICE_SESSION_ENABLE = 943,
        SMSG_VOICE_SESSION_ENABLE = 944,
        SMSG_VOICE_PARENTAL_CONTROLS = 945,
        CMSG_GM_WHISPER = 946,
        /// <summary>
        /// byte chatType
        /// int
        /// ulong
        /// int
        /// if ( chatType == MonsterSay (12) || chatType == MonsterParty (13) || chatType == MonsterYell (14) || chatType == MonsterWhisper (15)
        ///      || chatType == MonsterEmote (16) || chatType == RaidBossWhisper (41) || || chatType == RaidBossEmote (42) || chatType == BN (47) )
        /// {
        ///     int str1Len
        ///     byte[str1Len] str1Data
        ///     ulong guid2
        ///     if ((guid2.HighPart & 0xF0400000) != 0) // if its not a player and not a pet
        ///     {
        ///         int str2Len
        ///         byte[str2Len] str2Data
        ///     }
        ///     int str3Len
        ///     byte[str3Len] str3Data
        ///     byte chatTag
        /// }
        /// if (chatType == WhisperInform (8))
        /// {
        ///     int str1Len
        ///     byte[str1Len] str1Data
        ///     ulong guid2
        ///     int str2Len
        ///     byte[str2Len] str2Data
        ///     byte chatTag
        /// }
        /// if ( chatType == BGSystemNeutral (36) || chatType == BGSystemAlliance (37) || chatType == BGSystemHorde (38) )
        /// {
        ///     ulong guid2
        ///     if ((guid2.HighPart & 0xF0000000) != 0)
        ///     {
        ///         int str1Len
        ///         byte[str1Len] str1Data
        ///     }
        ///     int str2Len
        ///     byte[str2Len] str2Data
        ///     byte chatTag
        /// }
        /// if ( chatType == Type_48 (48) || chatType == Type_49 (49) )
        /// {
        ///     ulong guid2
        ///     int str1Len
        ///     byte[str1Len] str1Data
        ///     byte chatTag
        ///     int
        /// }
        /// if (isGMMessageOpcode)
        /// {
        ///     int gmMsgLen
        ///     byte[gmMsgLen] msg?
        /// }
        /// if (chatType == Channel (17))
        /// {
        ///     cstring channelName
        /// }
        /// ulong
        /// int strLen
        /// byte[strLen] str
        /// byte chatTag
        /// </summary>
        SMSG_GM_MESSAGECHAT = 947,
        MSG_GM_GEARRATING = 948,
        CMSG_COMMENTATOR_ENABLE = 949,
        SMSG_COMMENTATOR_STATE_CHANGED = 950,
        CMSG_COMMENTATOR_GET_MAP_INFO = 951,
        SMSG_COMMENTATOR_MAP_INFO = 952,
        CMSG_COMMENTATOR_GET_PLAYER_INFO = 953,
        SMSG_COMMENTATOR_GET_PLAYER_INFO = 954,
        SMSG_COMMENTATOR_PLAYER_INFO = 955,
        CMSG_COMMENTATOR_ENTER_INSTANCE = 956,
        CMSG_COMMENTATOR_EXIT_INSTANCE = 957,
        CMSG_COMMENTATOR_INSTANCE_COMMAND = 958,
        SMSG_CLEAR_TARGET = 959,
        CMSG_BOT_DETECTED = 960,
        SMSG_CROSSED_INEBRIATION_THRESHOLD = 961,
        CMSG_CHEAT_PLAYER_LOGIN = 962,
        CMSG_CHEAT_PLAYER_LOOKUP = 963,
        SMSG_CHEAT_PLAYER_LOOKUP = 964,
        SMSG_KICK_REASON = 965,
        MSG_RAID_READY_CHECK_FINISHED = 966,
        CMSG_COMPLAIN = 967,
        SMSG_COMPLAIN_RESULT = 968,
        SMSG_FEATURE_SYSTEM_STATUS = 969,
        CMSG_GM_SHOW_COMPLAINTS = 970,
        CMSG_GM_UNSQUELCH = 971,
        CMSG_CHANNEL_SILENCE_VOICE = 972,
        CMSG_CHANNEL_SILENCE_ALL = 973,
        CMSG_CHANNEL_UNSILENCE_VOICE = 974,
        CMSG_CHANNEL_UNSILENCE_ALL = 975,
        CMSG_TARGET_CAST = 976,
        CMSG_TARGET_SCRIPT_CAST = 977,
        CMSG_CHANNEL_DISPLAY_LIST = 978,
        CMSG_SET_ACTIVE_VOICE_CHANNEL = 979,
        CMSG_GET_CHANNEL_MEMBER_COUNT = 980,
        SMSG_CHANNEL_MEMBER_COUNT = 981,
        CMSG_CHANNEL_VOICE_ON = 982,
        CMSG_CHANNEL_VOICE_OFF = 983,
        CMSG_DEBUG_LIST_TARGETS = 984,
        SMSG_DEBUG_LIST_TARGETS = 985,
        SMSG_AVAILABLE_VOICE_CHANNEL = 986,
        CMSG_ADD_VOICE_IGNORE = 987,
        CMSG_DEL_VOICE_IGNORE = 988,
        CMSG_PARTY_SILENCE = 989,
        CMSG_PARTY_UNSILENCE = 990,
        MSG_NOTIFY_PARTY_SQUELCH = 991,
        SMSG_COMSAT_RECONNECT_TRY = 992,
        SMSG_COMSAT_DISCONNECT = 993,
        SMSG_COMSAT_CONNECT_FAIL = 994,
        SMSG_VOICE_CHAT_STATUS = 995,
        CMSG_REPORT_PVP_AFK = 996,
        CMSG_REPORT_PVP_AFK_RESULT = 997,
        CMSG_GUILD_BANKER_ACTIVATE = 998,
        CMSG_GUILD_BANK_QUERY_TAB = 999,
        SMSG_GUILD_BANK_LIST = 1000,
        CMSG_GUILD_BANK_SWAP_ITEMS = 1001,
        CMSG_GUILD_BANK_BUY_TAB = 1002,
        CMSG_GUILD_BANK_UPDATE_TAB = 1003,
        CMSG_GUILD_BANK_DEPOSIT_MONEY = 1004,
        CMSG_GUILD_BANK_WITHDRAW_MONEY = 1005,
        MSG_GUILD_BANK_LOG_QUERY = 1006,
        CMSG_SET_CHANNEL_WATCH = 1007,
        SMSG_USERLIST_ADD = 1008,
        SMSG_USERLIST_REMOVE = 1009,
        SMSG_USERLIST_UPDATE = 1010,
        CMSG_CLEAR_CHANNEL_WATCH = 1011,
        SMSG_INSPECT_TALENT = 1012,
        SMSG_GOGOGO_OBSOLETE = 1013,
        SMSG_ECHO_PARTY_SQUELCH = 1014,
        CMSG_SET_TITLE_SUFFIX = 1015,
        CMSG_SPELLCLICK = 1016,
        SMSG_LOOT_LIST = 1017,
        CMSG_GM_CHARACTER_RESTORE = 1018,
        CMSG_GM_CHARACTER_SAVE = 1019,
        SMSG_VOICESESSION_FULL = 1020,
        MSG_GUILD_PERMISSIONS = 1021,
        MSG_GUILD_BANK_MONEY_WITHDRAWN = 1022,
        MSG_GUILD_EVENT_LOG_QUERY = 1023,
        CMSG_MAELSTROM_RENAME_GUILD = 1024,
        CMSG_GET_MIRRORIMAGE_DATA = 1025,
        SMSG_MIRRORIMAGE_DATA = 1026,
        SMSG_FORCE_DISPLAY_UPDATE = 1027,
        SMSG_SPELL_CHANCE_RESIST_PUSHBACK = 1028,
        CMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 1029,
        SMSG_IGNORE_DIMINISHING_RETURNS_CHEAT = 1030,
        CMSG_KEEP_ALIVE = 1031,
        SMSG_RAID_READY_CHECK_ERROR = 1032,
        CMSG_OPT_OUT_OF_LOOT = 1033,
        MSG_QUERY_GUILD_BANK_TEXT = 1034,
        CMSG_SET_GUILD_BANK_TEXT = 1035,
        CMSG_SET_GRANTABLE_LEVELS = 1036,
        CMSG_GRANT_LEVEL = 1037,
        CMSG_REFER_A_FRIEND = 1038,
        MSG_GM_CHANGE_ARENA_RATING = 1039,
        CMSG_DECLINE_CHANNEL_INVITE = 1040,
        CMSG_GROUPACTION_THROTTLED = 1041,
        SMSG_OVERRIDE_LIGHT = 1042,
        SMSG_TOTEM_CREATED = 1043,
        CMSG_TOTEM_DESTROYED = 1044,
        CMSG_EXPIRE_RAID_INSTANCE = 1045,
        CMSG_NO_SPELL_VARIANCE = 1046,
        CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY = 1047,
        SMSG_QUESTGIVER_STATUS_MULTIPLE = 1048,
        CMSG_SET_PLAYER_DECLINED_NAMES = 1049,
        SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 1050,
        CMSG_QUERY_SERVER_BUCK_DATA = 1051,
        CMSG_CLEAR_SERVER_BUCK_DATA = 1052,
        SMSG_SERVER_BUCK_DATA = 1053,
        SMSG_SEND_UNLEARN_SPELLS = 1054,
        SMSG_PROPOSE_LEVEL_GRANT = 1055,
        CMSG_ACCEPT_LEVEL_GRANT = 1056,
        SMSG_REFER_A_FRIEND_FAILURE = 1057,
        SMSG_SPLINE_MOVE_SET_FLYING = 1058,
        SMSG_SPLINE_MOVE_UNSET_FLYING = 1059,
        SMSG_SUMMON_CANCEL = 1060,
        CMSG_CHANGE_PERSONAL_ARENA_RATING = 1061,
        CMSG_ALTER_APPEARANCE = 1062,
        SMSG_ENABLE_BARBER_SHOP = 1063,
        SMSG_BARBER_SHOP_RESULT = 1064,

        /* Calendar Event Flags
         * 0x1 - Player
         * 0x4 - System
         * 0x8 - Holiday
         *
         * 0x40 - Guild Announcement (Also invites disabled)
         * 0x80 - Raid Lockout
         * 0x200 - Raid Reset
         * 0x400 - Guild Event
         *
         *
         *
         *
         *
         * */

        /// <summary>
        /// Empty
        /// </summary>
        CMSG_CALENDAR_GET_CALENDAR = 1065,
        /// <summary>
        /// ulong guid? or some kind of id
        /// </summary>
        CMSG_CALENDAR_GET_EVENT = 1066,
        /// <summary>
        /// Might be a bad name, as its
        /// called from lua_CalendarMassInviteGuild
        /// int minLevel
        /// int maxLevel
        /// int minRank
        /// </summary>
        CMSG_CALENDAR_GUILD_FILTER = 1067,
        /// <summary>
        /// int arenaId?
        /// </summary>
        CMSG_CALENDAR_ARENA_TEAM = 1068,
        /// <summary>
        /// cstring Title
        /// cstring Description
        /// byte eventType
        /// byte resetOption
        /// int maxSize
        /// int
        /// packedDate eventDate
        /// packedDate lockoutDate
        /// int eventFlags
        /// if ((eventFlags & CalendarEventFlags.GuildAnnouncement) == 0)
        /// {
        ///     int count
        ///     for (count)
        ///     {
        ///         pguid player (yes the client writes a pguid)
        ///         byte
        ///         byte
        ///     }
        /// }
        /// </summary>
        CMSG_CALENDAR_ADD_EVENT = 1069,
        /// <summary>
        /// ulong eventId?
        /// ulong creator?
        /// cstring Title
        /// cstring Description
        /// byte eventType
        /// byte resetOption
        /// int maxSize
        /// int
        /// packedDate eventDate
        /// packedDate lockoutDate
        /// int eventFlags
        /// </summary>
        CMSG_CALENDAR_UPDATE_EVENT = 1070,
        /// <summary>
        /// ulong
        /// ulong
        /// int
        /// </summary>
        CMSG_CALENDAR_REMOVE_EVENT = 1071,
        /// <summary>
        /// ulong
        /// ulong
        /// packedDate
        /// </summary>
        CMSG_CALENDAR_COPY_EVENT = 1072,
        /// <summary>
        /// ulong eventId
        /// ulong creatorGuid
        /// cstring name? eventName?
        /// byte
        /// byte isGuildEvent
        /// </summary>
        CMSG_CALENDAR_EVENT_INVITE = 1073,
        /// <summary>
        /// ulong
        /// ulong
        /// int
        /// </summary>
        CMSG_CALENDAR_EVENT_RSVP = 1074,
        /// <summary>
        /// pguid
        /// ulong
        /// ulong
        /// ulong
        ///
        /// </summary>
        CMSG_CALENDAR_EVENT_REMOVE_INVITE = 1075,
        /// <summary>
        /// pguid
        /// ulong
        /// ulong
        /// ulong
        /// int
        /// </summary>
        CMSG_CALENDAR_EVENT_STATUS = 1076,
        /// <summary>
        /// pguid
        /// ulong
        /// ulong
        /// ulong
        /// int
        /// </summary>
        CMSG_CALENDAR_EVENT_MODERATOR_STATUS = 1077,
        /// <summary>
        /// int inviteCount
        /// for (inviteCount)
        /// {
        ///     ulong
        ///     ulong
        ///     byte
        ///     byte
        ///     byte
        ///     pguid
        /// }
        /// int eventCount
        /// for (eventCount)
        /// {
        ///     ulong
        ///     cstring
        ///     int
        ///     int
        ///     int eventFlags
        ///     int
        ///     pguid
        ///
        /// }
        ///
        /// int unixTime?
        /// packedDate currentDate
        ///
        /// int instanceSaveCount
        /// for (instanceSaveCount)
        /// {
        ///     int mapId
        ///     int difficulty
        ///     int timeUntilReset
        ///     ulong instanceId
        /// }
        ///
        /// int
        /// int instanceResetCount
        /// for (instanceResetCount)
        /// {
        ///     int
        ///     int
        ///     int
        /// }
        /// int count5
        /// for (count5)
        /// {
        ///     int
        ///     int
        ///     int
        ///     int
        ///     int
        ///     for (26)
        ///     {
        ///         int
        ///     }
        ///     for (10)
        ///     {
        ///         int
        ///     }
        ///     for (10)
        ///     {
        ///         int
        ///     }
        ///     cstring
        /// }
        /// </summary>
        SMSG_CALENDAR_SEND_CALENDAR = 1078,
        /// <summary>
        /// byte type?
        ///
        /// pguid
        /// ulong
        /// cstring
        /// cstring
        /// byte
        /// byte
        /// int
        /// int
        /// int
        /// packedDate
        /// packedDate
        ///
        /// int count1
        /// for (count1)
        /// {
        ///     pguid
        ///     byte
        ///     byte
        ///     byte
        ///     byte
        ///     ulong
        ///     int
        /// }
        ///
        /// </summary>
        SMSG_CALENDAR_SEND_EVENT = 1079,
        /// <summary>
        /// int count
        /// for (count)
        /// {
        ///     pguid
        ///     byte
        /// }
        /// </summary>
        SMSG_CALENDAR_FILTER_GUILD = 1080,
        /// <summary>
        /// Exact same handler as 1080
        /// int count
        /// for (count)
        /// {
        ///     pguid
        ///     byte
        /// }
        /// </summary>
        SMSG_CALENDAR_ARENA_TEAM = 1081,
        /// <summary>
        /// pguid
        /// ulong eventId
        /// ulong
        /// byte
        /// byte
        /// byte b3
        /// if (b3 == 1)
        /// {
        ///     int
        /// }
        /// byte
        /// </summary>
        SMSG_CALENDAR_EVENT_INVITE = 1082,
        /// <summary>
        /// pguid playerGuid
        /// ulong eventId
        /// byte
        /// </summary>
        SMSG_CALENDAR_EVENT_INVITE_REMOVED = 1083,
        /// <summary>
        /// pguid
        /// ulong
        /// int
        /// int
        /// byte
        /// byte
        /// int
        /// </summary>
        SMSG_CALENDAR_EVENT_STATUS = 1084,
        /// <summary>
        /// int (seems to be ignored)
        /// cstring
        /// cstring extra
        /// int error
        ///
        /// Errors
        /// "CALENDAR_ERROR_GUILD_EVENTS_EXCEEDED" = 1,
        /// "CALENDAR_ERROR_EVENTS_EXCEEDED" = 2,
        /// "CALENDAR_ERROR_SELF_INVITES_EXCEEDED" = 3,
        /// "CALENDAR_ERROR_OTHER_INVITES_EXCEEDED" = 4, (extra string used)
        /// "CALENDAR_ERROR_PERMISSIONS" = 5,
        /// "CALENDAR_ERROR_EVENT_INVALID" = 6,
        /// "CALENDAR_ERROR_NOT_INVITED" = 7,
        /// "CALENDAR_ERROR_INTERNAL" = 8,
        /// "ERR_GUILD_PLAYER_NOT_IN_GUILD" = 9,
        /// "CALENDAR_ERROR_ALREADY_INVITED_TO_EVENT_S" = 10, (extra string used)
        /// "PLAYER_NOT_FOUND" = 11,
        /// "CALENDAR_ERROR_NOT_ALLIED" = 12,
        /// "ERR_IGNORING_YOU_S" = 13, (extra string used)
        /// "CALENDAR_ERROR_INVITES_EXCEEDED" = 14,
        /// "CALENDAR_ERROR_INVALID_DATE" = 16,
        /// "CALENDAR_ERROR_INVALID_TIME" = 17,
        /// "CALENDAR_ERROR_NEEDS_TITLE" = 19,
        /// "CALENDAR_ERROR_EVENT_PASSED" = 20,
        /// "CALENDAR_ERROR_EVENT_LOCKED" = 21,
        /// "CALENDAR_ERROR_DELETE_CREATOR_FAILED" = 22,
        /// "ERR_SYSTEM_DISABLED" = 24,
        /// "ERR_RESTRICTED_ACCOUNT" = 25,
        /// "CALENDAR_ERROR_ARENA_EVENTS_EXCEEDED" = 26,
        /// "CALENDAR_ERROR_RESTRICTED_LEVEL" = 27,
        /// "ERR_USER_SQUELCHED" = 28,
        /// "CALENDAR_ERROR_NO_INVITE" = 29,
        /// "CALENDAR_ERROR_EVENT_WRONG_SERVER" = 36,
        /// "CALENDAR_ERROR_INVITE_WRONG_SERVER" = 37,
        /// "CALENDAR_ERROR_NO_GUILD_INVITES" = 38,
        /// "CALENDAR_ERROR_INVALID_SIGNUP" = 39,
        /// "CALENDAR_ERROR_NO_MODERATOR" = 40,
        /// </summary>
        SMSG_CALENDAR_COMMAND_RESULT = 1085,
        /// <summary>
        /// packedDate lockoutTime?
        /// int
        /// int
        /// int
        /// ulong
        /// </summary>
        SMSG_CALENDAR_RAID_LOCKOUT_ADDED = 1086,
        /// <summary>
        /// int i1
        /// if (i1 < 0)
        /// {
        ///     stop
        /// }
        /// int
        /// int
        /// ulong
        /// </summary>
        SMSG_CALENDAR_RAID_LOCKOUT_REMOVED = 1087,
        /// <summary>
        /// ulong
        /// cstring
        /// packedDate date
        /// int eventFlags
        /// int
        /// int
        /// ulong
        /// byte
        /// byte
        /// pguid
        /// pguid
        /// </summary>
        SMSG_CALENDAR_EVENT_INVITE_ALERT = 1088,
        /// <summary>
        /// ulong eventId
        /// packedDate date
        /// int eventFlags
        /// </summary>
        SMSG_CALENDAR_EVENT_INVITE_REMOVED_ALERT = 1089,
        /// <summary>
        /// ulong eventId
        /// packedDate date
        /// int eventFlags
        /// byte
        /// </summary>
        SMSG_CALENDAR_EVENT_INVITE_STATUS_ALERT = 1090,
        /// <summary>
        /// byte
        /// ulong
        /// packedDate date
        /// </summary>
        SMSG_CALENDAR_EVENT_REMOVED_ALERT = 1091,
        /// <summary>
        /// byte
        /// ulong
        /// int
        /// int eventFlags
        /// int
        /// byte
        /// int
        /// cstring
        /// </summary>
        SMSG_CALENDAR_EVENT_UPDATED_ALERT = 1092,
        /// <summary>
        /// pguid
        /// ulong
        /// byte
        /// byte
        /// </summary>
        SMSG_CALENDAR_EVENT_MODERATOR_STATUS_ALERT = 1093,
        CMSG_CALENDAR_COMPLAIN = 1094,
        CMSG_CALENDAR_GET_NUM_PENDING = 1095,
        /// <summary>
        /// int numPending
        /// </summary>
        SMSG_CALENDAR_SEND_NUM_PENDING = 1096,
        CMSG_SAVE_DANCE = 1097,
        /// <summary>
        /// int flag
        /// if (flag & 0x8)
        /// {
        ///     int
        /// }
        /// else
        /// {
        ///     int
        ///     int
        /// }
        /// </summary>
        SMSG_NOTIFY_DANCE = 1098,
        CMSG_PLAY_DANCE = 1099,
        /// <summary>
        /// ulong guid,
        /// int danceId (used to lookup in cache),
        /// int,
        /// int,
        /// int
        /// </summary>
        SMSG_PLAY_DANCE = 1100,
        CMSG_LOAD_DANCES = 1101,
        CMSG_STOP_DANCE = 1102,
        /// <summary>
        /// ulong player guid
        /// </summary>
        SMSG_STOP_DANCE = 1103,
        CMSG_SYNC_DANCE = 1104,
        CMSG_DANCE_QUERY = 1105,
        /// <summary>
        /// dance query response
        /// int id [ if (id & 0x80000000) do nothing]
        /// pguid creator?
        /// cstring (128 max) name?
        /// int bufferSize
        /// byte[bufferSize*4]
        /// int
        /// </summary>
        SMSG_DANCE_QUERY_RESPONSE = 1106,
        SMSG_INVALIDATE_DANCE = 1107,
        CMSG_DELETE_DANCE = 1108,
        /// <summary>
        /// learn dance move?
        /// ulong mask
        /// </summary>
        SMSG_LEARNED_DANCE_MOVES = 1109,
        CMSG_LEARN_DANCE_MOVE = 1110,
        CMSG_UNLEARN_DANCE_MOVE = 1111,
        CMSG_SET_RUNE_COUNT = 1112,
        CMSG_SET_RUNE_COOLDOWN = 1113,
        MSG_MOVE_SET_PITCH_RATE_CHEAT = 1114,
        /// <summary>
        /// pguid unitGuid
        /// float
        /// </summary>
        MSG_MOVE_SET_PITCH_RATE = 1115,
        SMSG_FORCE_PITCH_RATE_CHANGE = 1116,
        CMSG_FORCE_PITCH_RATE_CHANGE_ACK = 1117,
        /// <summary>
        /// pguid unitGuid
        /// float
        /// </summary>
        SMSG_SPLINE_SET_PITCH_RATE = 1118,
        SMSG_MOVE_ABANDON_TRANSPORT = 1119,
        MSG_MOVE_ABANDON_TRANSPORT = 1120,
        CMSG_MOVE_ABANDON_TRANSPORT_ACK = 1121,
        CMSG_UPDATE_MISSILE_TRAJECTORY = 1122,
        /// <summary>
        /// int
        /// int.
        /// client does nothing with values
        /// </summary>
        SMSG_UPDATE_ACCOUNT_DATA_COMPLETE = 1123,
        /// <summary>
        /// int
        /// </summary>
        SMSG_TRIGGER_MOVIE = 1124,
        CMSG_COMPLETE_MOVIE = 1125,
        CMSG_SET_GLYPH_SLOT = 1126,
        CMSG_SET_GLYPH = 1127,
        /// <summary>
        /// pguid recipient
        /// int achievementId (Achievement.dbc)
        ///
        /// </summary>
        SMSG_ACHIEVEMENT_EARNED = 1128,
        SMSG_DYNAMIC_DROP_ROLL_RESULT = 1129,
        /// <summary>
        /// int criteriaId (AchievementCriteria.dbc)
        /// pguid
        /// pguid
        /// int
        /// int packedDate
        /// int time (client calculates time(NULL) - this for something)
        /// int time2 (client calculates time(NULL) - this for something)
        /// </summary>
        SMSG_CRITERIA_UPDATE = 1130,
        /// <summary>
        /// pguid of comparison player
        /// </summary>
        CMSG_QUERY_INSPECT_ACHIEVEMENTS = 1131,
        SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 1132,
        CMSG_DISMISS_CONTROLLED_VEHICLE = 1133,
        CMSG_COMPLETE_ACHIEVEMENT_CHEAT = 1134,
        /// <summary>
        /// int questId
        /// int
        /// </summary>
        SMSG_QUESTUPDATE_ADD_PVP_KILL = 1135,
        CMSG_SET_CRITERIA_CHEAT = 1136,
        SMSG_GROUP_SWAP_FAILED = 1137,
        CMSG_UNITANIMTIER_CHEAT = 1138,
        CMSG_CHAR_CUSTOMIZE = 1139,
        /// <summary>
        /// Char customize
        /// byte
        /// if (more data in packet)
        /// {
        ///     ulong guid
        ///     cstring
        ///     byte
        ///     byte
        ///     byte
        ///     byte
        ///     byte
        ///     byte
        /// }
        /// </summary>
        SMSG_CHAR_CUSTOMIZE = 1140,
        /// <summary>
        /// Empty
        /// </summary>
        SMSG_PET_RENAMEABLE = 1141,
        CMSG_REQUEST_VEHICLE_EXIT = 1142,
        CMSG_REQUEST_VEHICLE_PREV_SEAT = 1143,
        CMSG_REQUEST_VEHICLE_NEXT_SEAT = 1144,
        CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 1145,
        /// <summary>
        /// guid, int, int
        /// </summary>
        CMSG_PET_LEARN_TALENT = 1146,
        CMSG_PET_UNLEARN_TALENTS = 1147,
        /// <summary>
        /// int
        /// </summary>
        SMSG_SET_PHASE_SHIFT = 1148,
        SMSG_ALL_ACHIEVEMENT_DATA = 1149,
        CMSG_FORCE_SAY_CHEAT = 1150,
        /// <summary>
        /// Used if cvar "predictedHealth" is true
        /// pguid
        /// uint newValue
        /// </summary>
        SMSG_HEALTH_UPDATE = 1151,
        /// <summary>
        /// Used if cvar "predictedPower" is true
        /// pguid
        /// byte powerType
        /// uint newValue
        /// </summary>
        SMSG_POWER_UPDATE = 1152,
        /// <summary>
        /// ulong guid
        /// </summary>
        CMSG_GAMEOBJ_REPORT_USE = 1153,
        /// <summary>
        /// pguid
        /// pguid newPrimaryTarget
        /// int count
        /// for(count)
        /// { pguid, int }
        /// </summary>
        SMSG_HIGHEST_THREAT_UPDATE = 1154,
        /// <summary>
        /// pguid, int count, for(count) { pguid, int }
        /// </summary>
        SMSG_THREAT_UPDATE = 1155,
        /// <summary>
        /// pguid, pguid
        /// </summary>
        SMSG_THREAT_REMOVE = 1156,
        /// <summary>
        /// pguid
        /// </summary>
        SMSG_THREAT_CLEAR = 1157,
        SMSG_CONVERT_RUNE = 1158,
        /// <summary>
        /// int count, stored in dword_1175648
        /// for (count)
        /// {
        ///     byte
        ///     byte
        /// }
        /// </summary>
        SMSG_RESYNC_RUNES = 1159,
        /// <summary>
        /// int mask
        /// </summary>
        SMSG_ADD_RUNE_POWER = 1160,
        CMSG_START_QUEST = 1161,
        /// <summary>
        /// int index
        /// </summary>
        CMSG_REMOVE_GLYPH = 1162,
        /// <summary>
        /// Debug Client only
        /// </summary>
        CMSG_DUMP_OBJECTS = 1163,
        /// <summary>
        /// Debug Client only
        /// </summary>
        SMSG_DUMP_OBJECTS_DATA = 1164,
        /// <summary>
        /// ulong guid
        /// </summary>
        CMSG_DISMISS_CRITTER = 1165,
        /// <summary>
        /// read as byte[56], but actually has a struct
        /// ulong guid
        /// int spellId
        /// float
        /// float
        /// float
        /// float
        /// float
        /// float
        /// int
        /// int
        /// int
        /// int
        /// </summary>
        SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 1166,
        CMSG_AUCTION_LIST_PENDING_SALES = 1167,
        SMSG_AUCTION_LIST_PENDING_SALES = 1168,
        /// <summary>
        /// int a1, ulong guid, int a2. If a1 > 0, call sub_768A20
        /// </summary>
        SMSG_MODIFY_COOLDOWN = 1169,
        /// <summary>
        /// pguid petGuid
        /// pguid targetGuid
        /// byte comboPoints
        /// </summary>
        SMSG_PET_UPDATE_COMBO_POINTS = 1170,
        CMSG_ENABLETAXI = 1171,
        /// <summary>
        /// pguid
        /// </summary>
        SMSG_PRE_RESURRECT = 1172,
        /// <summary>
        /// pguid unit
        ///
        /// until end (up to 256 bytes)
        /// {
        ///     byte index
        ///     int spellId
    ///         if (spellId > 0)
    ///         {
    ///             byte flags;
    ///             byte level;
    ///             byte count;
    ///
    ///             if (flags & 8)
    ///             {
    ///                 caster is unit.guid
    ///             }
    ///             else
    ///             {
    ///                 caster = read pguid
    ///             }
    ///
    ///             if (flags & 0x20)
    ///             {
    ///                 // these 2 may be the same
    ///                 int duration;
    ///                 int mstimelength; // this is added to current mstime to calculate expiration
    ///
    ///                 expiration = currentmstime + mstimelength
    ///                 if ((mstimelength+currentmstime) == 0)
    ///                 {
    ///                     expiration = 1;
    ///                 }
    ///
    ///             }
    ///             else
    ///             {
    ///                 duration = 0;
    ///                 expiration = 0;
    ///             }
    ///         }
        /// }
        /// </summary>
        SMSG_AURA_UPDATE_ALL = 1173,
        SMSG_AURA_UPDATE = 1174,
        CMSG_FLOOD_GRACE_CHEAT = 1175,
        /// <summary>
        /// guid, int achievementId, int type. if type > 0, "PLAYER_SERVER_FIRST_ACHIEVEMENT", else "SERVER_FIRST_ACHIEVEMENT"
        /// </summary>
        SMSG_SERVER_FIRST_ACHIEVEMENT = 1176,
        /// <summary>
        /// ushort spellId
        /// </summary>
        SMSG_PET_LEARNED_SPELL = 1177,
        /// <summary>
        /// 1178
        /// ushort spellId
        /// </summary>
        SMSG_PET_REMOVED_SPELL = 1178,
        CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE = 1179,
        /// <summary>
        /// Called when leaving Wintergrasp PVP zone
        /// </summary>
        CMSG_HEARTH_AND_RESURRECT = 1180,
        SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 1181,
        /// <summary>
        /// int criteriaId
        /// </summary>
        SMSG_CRITERIA_DELETED = 1182,
        /// <summary>
        /// int achievementId
        /// </summary>
        SMSG_ACHIEVEMENT_DELETED = 1183,
        CMSG_SERVER_INFO_QUERY = 1184, // not used
        SMSG_SERVER_INFO_RESPONSE = 1185,// not used
        CMSG_CHECK_LOGIN_CRITERIA = 1186,// not used
        SMSG_SERVER_BUCK_DATA_START = 1187,
        CMSG_QUERY_VEHICLE_STATUS = 1188,// not used
        // no 1189
        SMSG_1190 = 1190,
        /// <summary>
        /// Vehicle related
        /// pguid unitGuid
        /// int vehicleId (Vehicle.dbc)
        /// </summary>
        SMSG_VEHICLE_1191 = 1191,
        /// <summary>
        /// Activates a service? called from the same method that sends out other NPCFlag related "hello" opcodes
        /// guid
        /// </summary>
        CMSG_1192 = 1192,
        /// <summary>
        /// guid passengerId
        /// </summary>
        CMSG_EJECT_PASSENGER = 1193,
        /// <summary>
        /// int count
        /// for (count)
        /// {
        ///     guid
        /// }
        /// </summary>
        SMSG_PET_GUIDS = 1194,

        SMSG_CLIENTCACHE_VERSION = 1195, // 1190 in 3.0.9
        // no 1196
        // no 1197
        // no 1198
        // no 1199
        // no 1200
        // no 1201
        /// <summary>
        /// int64 itemGuid
        /// int
        /// int honorPoints
        /// int arenaPoints
        /// for (5)
        /// {
        ///     int tokenItemId
        ///     int tokenCount
        /// }
        /// int
        /// int
        /// </summary>
        SMSG_REFUND_UNKNOWN_1202 = 1202,
        /// <summary>
        /// refund request?
        /// int64 guid
        /// </summary>
        CMSG_UNKNOWN_1203 =1203,
        /// <summary>
        /// lua_ContainerRefundItemPurchase
        /// int64 itemGuid
        /// </summary>
        CMSG_REFUND_CURRENCY_ITEM = 1204,
        /// <summary>
        /// int64 itemGuid
        /// int response
        /// if (response)
        /// {
        ///     "UNABLE_TO_REFUND_ITEM"
        ///     packet ends
        /// }
        /// int
        /// int honorPoints
        /// int arenaPoints
        /// for (5)
        /// {
        ///     int tokenItemId
        ///     int tokenCount
        /// }
        /// </summary>
        SMSG_REFUND_UNKNOWN_1205 = 1205,
        /// <summary>
        /// int - same as new last int sent in MSG_CORPSE_QUERY
        /// </summary>
        CMSG_CORPSE_UNKNOWN_1206 = 1206,
        /// <summary>
        /// int[3] (could also be float[3], its read as 3 4byte primitives)
        /// float
        /// </summary>
        SMSG_UNKNOWN_1207 = 1207,
        /// <summary>
        /// lua_SetLFGRoles
        /// byte roleMask
        /// 0x1 - leader
        /// 0x2 - tank
        /// 0x4 - healer
        /// 0x8 - damage
        /// </summary>
        CMSG_LFG_SET_ROLES = 1208,
        /// <summary>
        /// Not in client as of 9733
        /// </summary>
        UMSG_UNKNOWN_1209 = 1209,
        /// <summary>
        /// lua_CalendarContextEventSignUp
        /// int64
        /// </summary>
        CMSG_CALENDAR_UNKNOWN_1210 = 1210,
        SMSG_CALENDAR_UNKNOWN_1211 = 1211,
        /// <summary>
        /// For equipment manager.
        /// int setCount
        /// for (setCount)
        /// {
        ///     pguid
        ///     int setId
        ///     cstring
        ///     cstring
        ///     for (19)
        ///     {
        ///         pguid itemGuid (corresponds to inventoryslot)
        ///     }
        /// }
        /// </summary>
        SMSG_EQUIPMENT_SET_LIST = 1212,
        /// <summary>
        /// lua_SaveEquipmentSet
        /// Set equipment set
        /// pguid - maybe not an actual object guid, but a set identifier? only this is sent in the delete set packet
        /// int setId
        /// cstring
        /// cstring
        /// for (19)
        /// {
        ///     pguid itemGuid (corresponds to inventoryslot)
        /// }
        /// </summary>
        CMSG_SET_EQUIPMENT_SET = 1213,
        /// <summary>
        /// called from CMissile::CalcPosition
        /// int64 guid
        /// int
        /// byte
        /// byte[12] (read as 12 bytes, could be vector3?)
        /// </summary>
        CMSG_MISSILE_UNKNOWN_1214 = 1214,
        /// <summary>
        /// int64
        /// byte
        /// float
        /// float
        /// float
        /// </summary>
        SMSG_UNKNOWN_1215 = 1215,
        /// <summary>
        /// byte type - branches to 2 diff structs depending on this
        /// if (type == 1) // pet
        /// {
        ///     int unspentTalentPoints
        ///     byte talentCount
        ///     for (talentCount)
        ///     {
        ///         int talentId (Talent.dbc)
        ///         byte rank
        ///     }
        /// }
        /// if (type == 0) // player
        /// {
        ///     int unspentTalentPoints
        ///     byte talentGroupCount (1 or 2)
        ///     byte talentGroupIndex (0 or 1)
        ///     if (talentGroupCount) // when would this not occur? unless count can be 0?
        ///     {
        ///         for (talentGroupCount)
        ///         {
        ///             byte talentIdCount
        ///             for (talentIdCount)
        ///             {
        ///                 int talentId (Talent.dbc)
        ///                 byte rank (0 is 1 point, 4 is 5 points)
        ///             }
        ///             byte glyphCount (up to 6)
        ///             for (glyphCount)
        ///             {
        ///                 int16 glyphPropertiesId
        ///             }
        ///         }
        ///     }
        /// }
        /// </summary>
        SMSG_TALENT_GROUP_LIST = 1216,
        /// <summary>
        /// lua_LearnPreviewTalents
        /// int count
        /// for (count)
        /// {
        ///     int talentId
        ///     int rank
        /// }
        /// </summary>
        CMSG_LEARN_PREVIEWED_TALENTS = 1217,
        /// <summary>
        /// lua_LearnPreviewTalents
        /// int64 petGuid
        /// int count
        /// for (count)
        /// {
        ///     int talentId
        ///     int rank
        /// }
        /// </summary>
        CMSG_PET_LEARN_PREVIEWED_TALENTS = 1218,
        UMSG_UNKNOWN_1219 = 1219, // not found
        UMSG_UNKNOWN_1220 = 1220, // not found
        UMSG_UNKNOWN_1221 = 1221, // not found
        UMSG_UNKNOWN_1222 = 1222, // not found
        /// <summary>
        /// battleground pet related
        /// only useful if the player is currently in an arena
        /// </summary>
        SMSG_1223 = 1223,
        /// <summary>
        /// if != 0, broadcasts ERR_ARENA_TEAM_CHANGE_FAILED_QUEUED
        /// </summary>
        SMSG_1224 = 1224, // int, used as a bool.

        UMSG_1225 = 1225, // not found in client 9733
        UMSG_1226 = 1226, // not found in client 9733
        /// <summary>
        /// for (19)
        /// {
        ///     pguid itemId
        ///     byte srcContainer
        ///     byte srcSlot
        /// }
        /// </summary>
        CMSG_USE_EQUIPMENT_SET = 1227,
        /// <summary>
        /// byte result (0 = ok, 4 = bags full, > 0 = error)
        /// </summary>
        SMSG_USE_EQUIPMENT_SET_RESULT = 1228,


Realm Auth Proof Error Codes

{
Success = 0,
        Failure = 1,                                ///< Unable to connect
        //Unknown1 = 2,                               ///< Unable to connect
        AccountBanned = 3,                         ///< This <game> account has been closed and is no longer available for use.Please go to <site>/banned.html for further information.
        InvalidInformation = 4,                               ///< The information you have entered is not valid. Please check the spelling of the account name and password. If you need help in retrieving a lost or stolen password, see <site> for more information
        InvalidInformation_2 = 5,                               ///< The information you have entered is not valid. Please check the spelling of the account name and password. If you need help in retrieving a lost or stolen password, see <site> for more information
        AccountInUse = 6,                         ///< This account is already logged into <game>. Please check the spelling and try again.
        PrepaidTimeLimitReached = 7,                     ///< You have used up your prepaid time for this account. Please purchase more to continue playing
        ServerFull = 8,                            ///< Could not log in to <game> at this time. Please try again later.
        WrongBuild = 9,                     ///< Unable to validate game version. This may be caused by file corruption or interference of another program. Please visit <site> for more information and possible solutions to this issue.
        UpdateClientVersion = 10,                          ///< Downloading
        //Unknown2 = 11,                               ///< Unable to connect
        AccountFrozen = 12,                        ///< This <game> account has been temporarily suspended. Please go to <site>/banned.html for further information
        //Unknown3 = 13,                               ///< Unable to connect
        //Unknown4 = 14,                               ///< Connected.
        ParentalControlRestriction = 15                        ///< Access to this account has been blocked by parental controls. Your settings may be changed in your account preferences at <site>
    }


Login Error Codes

{
        RESPONSE_SUCCESS = 0,
        RESPONSE_FAILURE = 1,
        RESPONSE_CANCELLED = 2,
        RESPONSE_DISCONNECTED = 3,
        RESPONSE_FAILED_TO_CONNECT = 4,
        RESPONSE_CONNECTED = 5,
        RESPONSE_VERSION_MISMATCH = 6,
        CSTATUS_CONNECTING = 7,
        CSTATUS_NEGOTIATING_SECURITY = 8,
        CSTATUS_NEGOTIATION_COMPLETE = 9,
        CSTATUS_NEGOTIATION_FAILED = 10,
        CSTATUS_AUTHENTICATING = 11,
        AUTH_OK = 12,
        AUTH_FAILED = 13,
        AUTH_REJECT = 14,
        AUTH_BAD_SERVER_PROOF = 15,
        AUTH_UNAVAILABLE = 16,
        AUTH_SYSTEM_ERROR = 17,
        AUTH_BILLING_ERROR = 18,
        AUTH_BILLING_EXPIRED = 19,
        AUTH_VERSION_MISMATCH = 20,
        AUTH_UNKNOWN_ACCOUNT = 21,
        AUTH_INCORRECT_PASSWORD = 22,
        AUTH_SESSION_EXPIRED = 23,
        AUTH_SERVER_SHUTTING_DOWN = 24,
        AUTH_ALREADY_LOGGING_IN = 25,
        AUTH_LOGIN_SERVER_NOT_FOUND = 26,
        AUTH_WAIT_QUEUE = 27,//
        AUTH_BANNED = 28,
        AUTH_ALREADY_ONLINE = 29,
        AUTH_NO_TIME = 30,
        AUTH_DB_BUSY = 31,
        AUTH_SUSPENDED = 32,
        AUTH_PARENTAL_CONTROL = 33,
        AUTH_LOCKED_ENFORCED = 34,
        REALM_LIST_IN_PROGRESS = 35,
        REALM_LIST_SUCCESS = 36,
        REALM_LIST_FAILED = 37,
        REALM_LIST_INVALID = 38,
        REALM_LIST_REALM_NOT_FOUND = 39,
        ACCOUNT_CREATE_IN_PROGRESS = 40,//
        ACCOUNT_CREATE_SUCCESS = 41,
        ACCOUNT_CREATE_FAILED = 42,
        CHAR_LIST_RETRIEVING = 43,
        CHAR_LIST_RETRIEVED = 44,
        CHAR_LIST_FAILED = 45,
        CHAR_CREATE_IN_PROGRESS = 46,
        CHAR_CREATE_SUCCESS = 47,
        CHAR_CREATE_ERROR = 48,
        CHAR_CREATE_FAILED = 49,
        CHAR_CREATE_NAME_IN_USE = 50,//
        CHAR_CREATE_DISABLED = 51,
        CHAR_CREATE_PVP_TEAMS_VIOLATION = 52,
        CHAR_CREATE_SERVER_LIMIT = 53,
        CHAR_CREATE_ACCOUNT_LIMIT = 54,
        CHAR_CREATE_SERVER_QUEUE = 55,
        CHAR_CREATE_ONLY_EXISTING = 56,
        CHAR_CREATE_EXPANSION = 57,
        CHAR_CREATE_EXPANSION_CLASS = 58,
        CHAR_CREATE_LEVEL_REQUIREMENT = 59,
        CHAR_CREATE_UNIQUE_CLASS_LIMIT = 60,//

        CHAR_DELETE_IN_PROGRESS = 61,
        CHAR_DELETE_SUCCESS = 62,
        CHAR_DELETE_FAILED = 63,
        CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 64,
        CHAR_DELETE_FAILED_GUILD_LEADER = 65,
        CHAR_DELETE_FAILED_ARENA_CAPTAIN = 66,
        CHAR_LOGIN_IN_PROGRESS = 67,
        CHAR_LOGIN_SUCCESS = 68,
        CHAR_LOGIN_NO_WORLD = 69,
        CHAR_LOGIN_DUPLICATE_CHARACTER = 70,//
        CHAR_LOGIN_NO_INSTANCES = 71,
        CHAR_LOGIN_FAILED = 72,
        CHAR_LOGIN_DISABLED = 73,
        CHAR_LOGIN_NO_CHARACTER = 74,
        CHAR_LOGIN_LOCKED_FOR_TRANSFER = 75,
        CHAR_LOGIN_LOCKED_BY_BILLING = 76,
        CHAR_NAME_SUCCESS = 77,
        CHAR_NAME_FAILURE = 78,
        CHAR_NAME_NO_NAME = 79,
        CHAR_NAME_TOO_SHORT = 80,//
        CHAR_NAME_TOO_LONG = 81,
        CHAR_NAME_INVALID_CHARACTER = 82,
        CHAR_NAME_MIXED_LANGUAGES = 83,
        CHAR_NAME_PROFANE = 84,
        CHAR_NAME_RESERVED = 85,
        CHAR_NAME_INVALID_APOSTROPHE = 86,
        CHAR_NAME_MULTIPLE_APOSTROPHES = 87,
        CHAR_NAME_THREE_CONSECUTIVE = 88,
        CHAR_NAME_INVALID_SPACE = 89,
        CHAR_NAME_CONSECUTIVE_SPACES = 90,//
        CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 91,
        CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 92,
        CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 93,
}


MaNGOS DB Terminal

---------------------------------
Mang0s DB Terminal (MDBT)
---------------------------------

Описание:
Bat-файл для работы с базами mangos и realmd сервера Mangos
Поддерживаются агрументы командной строки...
Система логирования ошибок.

Возможности:

1. Работа с базой:
1.1 Полный бекап баз realmd и mangos (с аргументами запаковывает бекапы в rar)
1.2 Неполный бекап для обновления базы (таблицы character_* и т.д.)
1.2.1 Бекап в 1 файл
1.2.2 Каждую таблицу в свой файл
1.3 Бекап по расписанию (через планировщик заданий)
1.4 Восстановление неполный бекапов обновления баз (таблицы character_* и т.д.)
1.5 Установка sql-обновлений для ядра (с сортировкой по базам)
1.6 Установка отельных sql-файлов из папки sqlfiles
1.7 Полная установка базы из определенного файла
1.8 Проверка, анализ и оптимизация всех таблиц
1.9 Функция удаления акаунтов и их чаров, которые не заходили в игру больше определенного кол-ва дней
1.9.1 Удаление пустых аккаунтов (без чаров) которые не заходили в игру N дней

2. Работа с чарами:
2.1 Сохранение определенного чара
2.2 Удаление определенного чара
2.3 Восстановление определенного чара (с удалением предыдущего)
2.4 Сохранение всех чаров (каждого в отдельный файл)
2.5 Удаление чаров ниже n левела

3. Поиск по базе:
3.1 Поиск в таблице creature_template
3.2 Поиск в таблице gameobject_template
3.3 Поиск в таблице item_template

4. Аргументы:
4.1 nr - создание неполного BackUp mangos и бекапа базы реалма
4.2 mr - полные BackUp реалма и мангос
4.3 mrn - создание неполного BackUp mangos, BackUp базы реалма и базы мангос
4.4 mbackup - полный BackUp базы mangos
4.5 rbackup - полный BackUp базы realmd
4.6 nonfull - BackUp основных таблиц базы mangos
4.7 schar - Сохранение всех чаров (каждого в отдельный файл)

5. Other:
5.1 Кто онлайн
5.2 Пять самых богатых чаров на сервере
5.3 Встроенный планировщик заданий


EventAI конструктор

EventAI конструктор

Утилита полностью на русском языке для создания EAI скриптов(на их базе построено расширение ACID) посредством удобного интерфейса.


Quice

Quice
Редактор базы данных MaNGOS

Возможности программы
Редактор квестов, мобов, объектов, предметов, и многое другое...

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

  • Перед первым запуском программы рекомендуется выполнить файл Quice.sql из дистрибутива программы в базу mangos
  • После запуска программы должно появиться окно авторизации в котором вам надо установить параметры соединения с MySQL сервером.
  • После каждого обновления базы рекомендуется выполнять обновление списка спеллов, используемых в базе. (Tools -> Rebuild spell list или нажать Ctrl+L)
  • Установите значения в полях поиска и нажмите кнопку "Search"
  • Чтобы открыть редактирование (квеста, моба, предмета...) дважды кликните мышью на элементе списка или выделите элемент и нажмите кнопку "Edit"
  • Данные находятся на нескольких вкладках и редактируются либо непосредственным вводом значений, либо вызовом редактора на кнопку у поля
  • После редактирования перейдите на вкладку "Script", где вы можете просмотреть и выполнить сгенерированный программой SQL-скрипт.
    Внимание: до тех пор пока вы не выполните скрипт, ваши изменения не применятся.
  • Не забывайте чистить кэш клиента (Cache\WDB) перед его запуском, иначе некоторые изменения могут не отобразиться
  • Все выполненные скрипты хранятся в файле Log.sql.


GM Log Parser (GLoS)

GM Log Parser (GLoS)

Что реализованно в GLoS(на момент написания материала):
+ Высокая скорость обработки
+ Разделение на "Команды", "Трейды", "Почту", "ГильдБанк", "Аукцион".
+ Поиск по ВСЕМ разделам
+ Дата и время разделены на отдельные поля => поиск можно производить более точно
+ При выборе какой-либо строки, выводит в отдельные поля координаты с номером карты и отдельным большим полем выводит команду (удобно, если надо просмотреть команду анонса)
+ В трейдах, действиях с гильд-банками и т.д., в отличии от аналога, выводятся и операции с деньгами, не только со шмотом
+ Экономное пользование пространством в интерфейсе
+ Русские имена чаров и ГМов теперь тоже поддерживаются;
+ Введен в работу раздел "Аукцион";
+ Полностью работоспособен поиск по ВСЕМ разделам;
+ Некоторые заголовки столбцов переименовал => более понятны предназначения некот. полей;
+ Теперь можно менять размер окна программы по вертикали;
+ Немного реструктурировал код.


PseuWoW

PseuWoW

PseuWoW - альтернативный opensource MMORPG клиент, который позволяет соединяться с серверами, наподобии M.A.N.G.O.S., Antrix (официально не поддерживает), WoWEmu (устаревший), и другими.
Пожалуйста обратите внимание, что PseuWoW официально поддерживает только MaNGOS.

Преимущества:
- Работает на любой Windows-платформе (win98 +)
- почти отсутствуют системные требования к ЭВМ (386 процессора будет достаточно для запуска, но работа программмы будет медленной)
- минимум дискового пространства (размер базового дистрибутива - ниже 5 МБ)
- минимальные требования к оперативной памяти
- не нуждается в установке, и ничего не изменяет на компьютере, где производится запуск
- может быть расширен через скриптинг
- очень быстрое время входа. По локальным сетям требуется 2 секунды, чтобы подсоединиться к логин-серверу, если у вас достаточно быстрая машина
- файлы клиента Blizzard критически НЕ необходимы для работы, но вы можете модульно добавлять контент от коммерческих MMO игр (stuffextract.exe для WoW)
- наиболее важный аспект: проект создан как opensource! измените код под ваши нужды, и поделитесь с другими.

Неудобства:
- основной пакет без извлеченных ресурсов игры обеспечивает мало функциональных возможностей
- все еще в очень ранней стадии разработки, так что не ожидайте слишком много, есть так много вещей, которые еще не осуществлены.
- чем больше контента включено и загружено, тем больше используется оперативной памяти и места на диске.
- вы не можете использовать данные игры, упакованные в оригинале MPQ архив, Их необходимо извлечь. Это занимает много дискового места, но удобнеее для изменения данных и улучшения совместимости. к счастью stuffextract делает всё необходимое автоматически.


DB-script

DBscript - онлайн редактор баз данных

Одной из основных возможностей является работа многих пользователей над одной базой данных,с разными уровнями доступа.

Помощь в разработке

http://code.google.com/p/db-script/issues/list

SVN

http://db-script.googlecode.com/svn/trunk/


Часто Задаваемые Вопросы

!!!) Где можно скачать сервер, базу, сайты и программы???
Ответ:
 Компилированный MaNGOS тут.
Сайты тут.
База тут и тут .
 Программы легко находятся поиском по названию тут

0) Не знаете, что писать в хост-логин-пароль подключения к базе данных
Ответ: Не ставьте сервер. Узнайте для начала что такое MySQL, потратьте пару часов своего времени на чтение описаний, и пару месяцев на обучение. Без этого знания вы все равно ничего не сможете сделать.

1) Сервер запускается и сразу закрывается
Ответ: проверьте правильность настройки файлов mangosd.conf и realmd.conf

2) Сервер запускается и висит, в игру зайти нельзя, возможно, выдаёт такую ошибку:
Could not connect to MySQL database at ***
Ответ: Проверьте в файлах mangosd.conf и realmd.conf настройки коннекта сервера к базе данных.

3) Сервер запускается и висит, в игру зайти нельзя. Выводит ошибки типа:
"2009-01-20 12:04:51 ERROR:Map file './maps/0004331.map' is non-compatible version (outdated?). Please, create new using ad.exe program.
2009-01-20 12:04:51 ERROR:Correct *.map files not found in path './maps' or *.vmap/*vmdir files in './vmaps'. Please place *.map/*.vmap/*.vmdir files in appropriate directories or correct the DataDir value in the mangosd.conf file."
или
Some required *.dbc files <2 from 57> not found or not compatible:
./dbc/BattlemasterList.dbc<exsist, but have 34 fields instead 33> wrong client version DBC file?
./dbc/Map.dbc<exist, but have 117 fieds instead 123>wrong client version DBC file?
Ответ: Проверьте наличие папок maps, vmaps и dbc, а также правильность указания пути к ним в файле mangosd.conf При необходимости переизвлеките карты, dbc подходящим для версии клиента и сервера эктсратором ad.exe (всегда можно найти в репозитории проекта)

4) Сервер запускается, но пишет ошибки (возможно, не пускает в игру) Ошибки могут выглядеть так:
ERROR:Error loading `playercreateinfo` table or empty table
2008-11-29 21:29:57 query ERROR: Table 'mangos.creature_movement_addon' doesn't exist
2008-11-29 21:32:37 SQL: SELECT id, gmlevel, sessionkey, last_ip, locked, sha_pass_hash, v, s, tbc, mutetime, locale FROM account WHERE UPPER(username) = UPPER('TEST')
2008-11-29 21:32:37 query ERROR: Unknown column 'tbc' in 'field list'
2008-11-29 22:29:57 SQL: SELECT text FROM autobroadcast ORDER BY RAND() LIMIT 1
2008-11-29 22:29:57 query ERROR: Table 'mangos.autobroadcast' doesn't exist
Ответ: Переведите текст ошибки. Ответ содержится именно в них. Проверьте вашу базу. Посмотрите текст ошибки и проверьте ошибку в базе вручную. Затем проверьте под какую ревизию ваша база и какой ревизии ваш сервер, скорее всего вам необходимо поставить обновления из папки sql/update сервера на вашу базу мира, персонажей, рилма. Возможно, необходимо установить sql обновления от патей использованных в вашей сборке сервера.

5) Сервер запускается, но нет персов или иная ошибка с персонажами (возможно, в консоли есть ошибки)
Ответ: Проверьте вашу базу. Посмотрите текст ошибки и проверьте ошибку в базе вручную. Затем проверьте под какую ревизию ваша база и какой ревизии ваш сервер, скорее всего вам необходимо поставить обновления из папки sql/update сервера на вашу базу персонажей. Возможно, необходимо установить sql обновления от патей использованных в вашей сборке сервера.

6) При попытке запуска mangosd.exe пишет что тот неправильно сконфигурирован/некорректно настроено
Ответ: Установите Microsoft Net Framework 3.5

7) Апдейт МуСКЛ при заливе пишет какую-то ошибку.
Ответ: Перевести ошибку, ползуясь любыми доступными средствами (словарь, сервис онлайн перевода, умный друг, родители, учитель англ. в школе). В тексте описания ошибки обычно и содержится инструкция по исправлению.
Судя по постам на форуме, самых распространенных ошибок немного:
a. SQL ERROR: Unkown column - версия дампа не подходит к версии базы. Сделать так, чтобы подходила - либо откатить базу до версии дампа, накатить дамп, а потом апдейты до текущей версии, либо руками поправить дамп, глядя на произошедшие в базе изменения.
b. Table 'название' doesn't exist - таблица не существует. Проверить - стоит ли МуСКЛ, есть ли разрешение у текущего юзера, в ту ли базу заливается дамп. Создать таблицу, взяв нужные файлы из сервера мангос.
c. Error loading `название` table or empty table - ошибка загрузки таблицы, или таблица не существует. Проверить версию базы, или же (см. выше).
d. Unable to connect to MySQL server - не могу подключиться к МуСКЛ. Либо неверно написан хост базы данных, либо у текущего юзера нет прав доступа.
e. Error in your SQL syntax - ошибка в МуСКЛ запросе. Изучать МуСКЛ запросы, искать в чем ошибка.
f. MySQL server has gone - МуСКЛ сервер не может принять такой большой файл. Разбить дамп на несколько мелких куском, либо в конфиге МуСКЛ разрешить заливку больших файлов.

8) При запуске приложения выдает ошибку "Приложению не удалось запуститься, поскольку MSVCR71.dll не был найден. Повторная установка приложения исправит эту проблему"
Ответ: скачать соответствующую библиотеку и распаковать в папку /Windows/system32/

9) Реалмлист в wow просто пустое окно
Ответ: проверьте правильность указания ip адреса в таблице realmlist, а также правильность указания timеzone (должны быть одинаковы для конфига и записи в базе). Так же проверьте правильность указания портов.

10) Я скачал готовую сборку, но у меня в ней что-то не работает.
Ответ: На mangos.ru запрещено выкладывать готовые сборки , соотвественно обращайтесь туда где вы её скачали

11) Не создаются новые расы, класс, сервер как не BC или не WotLK
Ответ: Проверить в конфиге сервера строку Expansion (0 - классический клиент, 1 - BC, 2 - WotLK) Так же проверить поле expansion в таблице account базы realmd (те же значения) см.скрин
 http://getmangos.org/forum/attachmen...1&d=1234686109

В случае необходимости изменить дефолтное значение этого поля на 2. Также проверьте сайт регистрации, возможно там так же по умолчанию в поле expansion прописывается 0.

12) Клиент не может подключиться к серверу
Ответ: Проверьте правильность адреса указания в файле realmlist.wtf клиента. В версии клиента 3.0.3 он находится в папке Data\ru (ru - как пример - зависит от языка клиента). Так же стоит проверить правильность указания адреса в таблице realmlist базы relmd. Для игры одному на компе - 127.0.0.1 - для игры по сети - сетевой адрес компьютера. Так же следует проверить правильность указания портов.

13) Как создать аккаунт
Ответ: Или через сайт, который вы можете установить или через команду в консоли:
account create ИМЯ ПАРОЛЬ
14) Как дать ГМ права аккаунту?
Ответ: Таблица account в базе realmd. Значения поля gmlevel: 0-обычный аккаунт, 1-модератор, 2-гейммастер, 3-администратор (полные права).

15) Проблема в том что рестартер не срабатывает сразу. Windows хочет отправить отчет об ошибке. пока не нажмешь Не отправлять отчет, рестратер не начинает работать!

Ответ: Отключить отчет об ошибках.
 http://mangos.ru/attachment.php?atta...0&d=1233822458

16)У меня очень долго заливается база (или SQL-файл) через Navicat. Как исправить?
Ответ: Пользуйтесь SQLyog'ом или консолью. Как использовать консоль - см подпись Y2kCat

17) Как узнать все команды в консоли сервера?
Ответ: прописать в консоли команду help. Более подробно для каждой команды - help КОМАНДА.

18) Как узнать все доступные команды в игре?
Ответ: набрать в чате команду .commands .

19) Смена пароля, ника, регистрация акка через базу:
PHP код:
# Обновляет пароль у уже существующего аккаунта
UPDATE `account` SET `sha_pass_hash`=SHA1(CONCAT(UPPER(`username`),':',UPPER('НОВЫЙ_ПАРОЛЬ'))) WHERE `id`=x;
# Смена имени уже существующего аккаунта:
UPDATE `account` SET `username`='НОВОЕ_ИМЯ', `sha_pass_hash`=SHA1(CONCAT(UPPER('НОВОЕ_ИМЯ'),':',UPPER('ПАРОЛЬ'))) WHERE `id`=x;
# Создание нового аккаунта:
INSERT INTO `account(`username`,`sha_pass_hash`) VALUES('ИМЯ_АККАУНТА', SHA1(CONCAT(UPPER('ИМЯ_АКК

С незначительными правками и доплнениями взято из инструкции Kirix(почетного флудера RMDC)


FAQ по использованию Git

Чтобы скачать исходные коды:
git clone git://github.com/mangos/mangos.git
Чтобы обновить исходные коды:
git pull origin master
Создать новую ветку:
git branch имя ветки
Посмотреть все ветки:
git branch
Переключемся в ветку:
git checkout имя ветки
Просмотр изменений:
git status
Создать патч файл:
git diff > имя файла.patch
Патч отличий чистых исходных текстов и ветки:
git diff master ветка -p > имя файла.patch
git diff master ветка > имя файла.patch
Применить патч:
git am < имя файла.patch
git apply < имя файла.patch
Применение патча с созданием новых файлов:
patch -p1 < имя файла.patch
Добавить все изменения:
git add *
Добавить изменения по отдельности:
git add имя файла
Сделать commit:
git commit -a -m "work patch"
Просмотр commit:
git log
Возвращение к чистым исходным кодам:
git clean -f -x -d
Переключение в основную ветку:
git checkout master
Удалить созданную ветку:
git branch имя ветки -D
Откат всех изменений в коде:
git reset --hard
Скачать определённую ревизию(к примеру 10 ревизий назад):
Скачивая самую свежую ревизию, Вы скачиваете всю историю изменений с момента создания репозитория.
Поэтому, чтобы получить исходники, например, которые были 10 коммитов назад на коммит (x-10) нужно:
git checkout master
git reset HEAD~10
Единственное - все изменения после коммита (x-10) буду потеряны.
Нужно будет заново закачать их.
Если вы пользуетесь системой контродя версий git, то возможно вам надоедает набирать длинные команды git status, git checkout, git commit, git branch. Можно прописать в ~/.gitconfig для них короткие алиасы:

[alias]
    ci = commit
    co = checkout
    st = status
    br = branch

Вопросы и ответы

Q:Вот ещё задачка: как заставить git не добавлять каждый раз в изменения определённую папку? например я положил папку ScriptDev2 в mangos\src\bindings, но при создании любых патчей она всплывает...
черепашка тупо не трогала папки где нет её файлов, а как быть с git?
A:В .git/info/exclude добавь src/bindings/ScriptDev2/*


FAQ по переводу патчей на новые ревизии

Пример будет рассмотрен для создания с помощью Microsoft Visual Studio 2005 (необходима сама программа и полностью скаченные исходники Mangos'a)

Вот возьмём к примеру несложный патч, правит обилки Rip и Rupture (оригинал):
Код:
Index: src/game/SharedDefines.h
===================================================================
--- src/game/SharedDefines.h	(revision 3207)
+++ src/game/SharedDefines.h	(working copy)
@@ -1016,5 +1016,7 @@
 #define UNIT_FLAG_ANIMATION_FROZEN      0x0400
 #define UNIT_FLAG_WAR_PLAYER            0x1000

-#define SPELL_ID_AGGRO                    22764
+#define SPELL_ID_AGGRO                  22764
+#define SPELL_ICONID_RIP	      	108
+#define SPELL_ICONID_RUPTURE		500
 #endif
Index: src/game/SpellAuras.cpp
===================================================================
--- src/game/SpellAuras.cpp	(revision 3207)
+++ src/game/SpellAuras.cpp	(working copy)
@@ -240,7 +240,8 @@
         if(caster->GetTypeId() == TYPEID_PLAYER)
         {
             comboPoints = (uint8)((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & 0xFF00) >> 8);
-            caster->SetUInt32Value(PLAYER_FIELD_BYTES,((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
+			if (!(spellproto->EffectPointsPerComboPoint[0] > 0 && (spellproto->SpellIconID == SPELL_ICONID_RIP || spellproto->SpellIconID == SPELL_ICONID_RUPTURE )))
+				caster->SetUInt32Value(PLAYER_FIELD_BYTES,((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
         }
         comboPoints = comboPoints < 5 ? comboPoints : 5;
         m_duration += int32((maxduration - m_duration) * comboPoints / 5);
@@ -264,6 +265,8 @@
     {
         m_caster_guid = caster->GetGUID();
         damage = CalculateDamage();
+			if ((spellproto->EffectPointsPerComboPoint[0] > 0 && (spellproto->SpellIconID == SPELL_ICONID_RIP || spellproto->SpellIconID == SPELL_ICONID_RUPTURE )))
+				caster->SetUInt32Value(PLAYER_FIELD_BYTES,((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
     }

     m_effIndex = eff;
Index: src/game/Unit.cpp
===================================================================
--- src/game/Unit.cpp	(revision 3207)
+++ src/game/Unit.cpp	(working copy)
@@ -4602,8 +4602,11 @@
     if(comboDamage > 0)
     {
         value += (int32)(comboDamage * comboPoints);
-        if(GetTypeId() == TYPEID_PLAYER)
-            SetUInt32Value(PLAYER_FIELD_BYTES,((GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
+         	if(GetTypeId() == TYPEID_PLAYER)
+		{
+			if (!(spellProto->EffectPointsPerComboPoint[0] > 0 && (spellProto->SpellIconID == SPELL_ICONID_RIP || spellProto->SpellIconID == SPELL_ICONID_RUPTURE )))
+				SetUInt32Value(PLAYER_FIELD_BYTES,((GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
+		}
     }

     return value;

Разберём всё по шагам.
1) Собственно нужно убедится что есть сами исходники, программа Tortoise SVN, сам патч и Visual Studio [image] (желательно ещё и присутствие программы Compare IT! или других аналогичных)
2) Выделяем файл патча (расширение *.patch), вызываем контекстное меню, жмём "TortoiseSVN" => "Apply Patch". Там указываем папку с исходниками, нажимаем "ОК". Тут же появляется окно "TortoiseMerge", в нём в левой части список файлов различных расширений (в нашем случае : SharedDefines.h, SpellAuras.cpp, Unit.cpp). Выделяем любой из них, вызываем контекстное меню и жмём "Patch All", при этом файлы, которые были выделены красным цветом выдадут нам ошибку - жмём ок.
2) Запомнив названия файлов, которые были красным цветом открываем файл пачта (файл расширения *.patch открываем любым текстовым редактором)
3) Заходим в папку с исходниками, ищем папки "src" => "game", и там открываем с помощью Visual Studio один из файлов, которые были выделены красным цветом в "TortoiseMerge" (К примеру, когда мы ставили патч через TortoiseMerge, красным цветом было выделено только 2 файла из трёх - Unit.cpp и Spellauras.cpp)
4) Открыв файл Spellauras.cpp нажимаем CTRL+F, в появившемся окне поиска вводим (это соседняя строка от изменяемного места. Так же можно искать по удаляемому коду (это строка, вначале которой стоит знак "-")
Код:
comboPoints = (uint8)((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & 0xFF00) >> 8);
**Обращаем внимание только на строки, начинающиеся со знака "+" или "-", либо соседние** и удаляем ту строку, около которой в самом патче был знак "-" (в самом файле естественно не будет знака "-" и его пытаться искать в файле ненужно - просто отбрасываем его). То есть
Код:
caster->SetUInt32Value(PLAYER_FIELD_BYTES,((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
и на её место вставляем (так же нужно правельно сдвигать строки! Не лепить куски нового кода в ту же строку)
Код:
+ if (!(spellproto->EffectPointsPerComboPoint[0] > 0 && (spellproto->SpellIconID == SPELL_ICONID_RIP || spellproto->SpellIconID == SPELL_ICONID_RUPTURE )))
+	caster->SetUInt32Value(PLAYER_FIELD_BYTES,((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
**При переписке патчей нужно очень много использовать CTRL+C и CTRL+V что ускорит процесс. И ОБЯЗАТЕЛЬНО УДАЛЯЕМ ЗНАК "+" В НАЧАЛЕ КАЖДОЙ СТРОКИ ПОСЛЕ КОПИРОВАНИЯ В ФАЙЛ**
После этой замены получается вот такое
Код:
    if( m_duration != maxduration )
    {
        uint8 comboPoints=0;
        if (caster && caster->GetTypeId() == TYPEID_PLAYER)
        {
            comboPoints = (uint8)((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & 0xFF00) >> 8);
            if (!(spellproto->EffectPointsPerComboPoint[0] > 0 && (spellproto->SpellIconID == SPELL_ICONID_RIP || spellproto->SpellIconID == SPELL_ICONID_RUPTURE )))
                caster->SetUInt32Value(PLAYER_FIELD_BYTES,((caster->GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
        }
        comboPoints = comboPoints < 5 ? comboPoints : 5;
        m_duration += int32((maxduration - m_duration) * comboPoints / 5);
5) После внесения всех изменений, что были указаны в патче в файл, жмём кнопку Save на панели инструментов Visual Studio в редакторе и выходим. Теперь можно приступать к следующему файлу - Unit.cpp
6) Как и в предыдущий раз, открываем файл Unit.cpp, ищем в самом патче строку
Код:
 Index: src/game/Unit.cpp
и смотрим ниже строки, где в начале присутвуют + и -.
Найдя строки
Код:
-        if(GetTypeId() == TYPEID_PLAYER)
-            SetUInt32Value(PLAYER_FIELD_BYTES,((GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
(Только без "-")
Выделяем их полностью и заменяем на
Код:
+         	if(GetTypeId() == TYPEID_PLAYER)
+		{
+			if (!(spellProto->EffectPointsPerComboPoint[0] > 0 && (spellProto->SpellIconID == SPELL_ICONID_RIP || spellProto->SpellIconID == SPELL_ICONID_RUPTURE )))
+				SetUInt32Value(PLAYER_FIELD_BYTES,((GetUInt32Value(PLAYER_FIELD_BYTES) & ~(0xFF << 8)) | (0x00 << 8)));
+		}

Затем удаляем все "+" вначале добавленных строк.
Так же жмём сохранить.
7) После всего этого выходим к папке с исходниками, вызываем на ней контекстное меню, затем "TortoiseSVN"=>"Create Patch", выбираем место куда сохранить файл, пишем ему любое название и ставим расширение *.patch (пример - blizzlike.patch). Этим самым вы создадите патч под новую реву и можете смело его выкладывать, Но...Желательно его и сверить с оригиналом - не наделали вы ошибок. Для этого к примеру можно использовать программу Compare IT! . Запускаем её, появляется меню выбора первого файла - выбираем оригинал, затем выбрав первый, появляется меню выбора второго файла - выбираем наш патч. После этого перед нами предстаёт окно, разделённое на 2 половины. Ищем места где слева есть красные или тёмно-зелёные полоски (на синие полоски не обращайте внимания - это означает что изменён номер ревизии или номер строки). Найдя красную или зелёную строку нужно либо восстанавливать бэкап изменённого файла и переписывать по новой, либо найти неверные строки и поправить всё вручную (Не стоит обращать внимания на выделение строки "\ No newline at end of file" в конце файла, на работу патча это не повлияет).

С незначительными правками и доплнениями взято из инструкции Карателя(модератора RMDC)


mangosd.conf на русском

#####################################
# MaNGOS - Файл конфигурации #
#####################################
Версия конфигуратора=2008022901

###########################################################################################
# ПОДКЛЮЧЕНИЯ И ДИРЕКТОРИИ
#
# RealmID
# Идентификатор сервера, соответствует значение в БД realmd
#
# DataDir
# Базовая директория.
# Важно: значение должно быть взято в кавычки, так как возможно использование пробелов в значении.
# Пример: "@prefix@/share/mangos"
#
# LogsDir
# Директория для логов.
# Внимание: директория должна существовать. В ином случае опция должны быть выключена.
# Стандартно: "" - без префикса, если указан не абсолютный путь,
# директория будет отсчитываться от корневой папки запуска сервера.
#
#
# LoginDatabaseInfo
# WorldDatabaseInfo
# CharacterDatabaseInfo
# Настройки подключения сервера к БД.
# Стандартно: hostname;port;username;password;database - Win
# .;somenumber;username;password;database
# .;/path/to/unix_socket;username;password;database
# Unix сокеты: не тестировано, экспериментальная опция
#
# MaxPingTime
# Настройка, устанавливающая максимальный интервал отклика для БД
#
# WorldServerPort
# Стандартный порт ...
#
# BindIP
# Привязка игрового сервера к IP или имени хоста
#
###########################################################################################

###########################################################################################
# УСТАНОВКИ ОБРАБОТЧИКА
#
# UseProcessors
# Назначение маски процессора для мультипроцессорных систем (Используется только в Windows)
# Стандартно: 0 (авто-определение системой)
# number (bitmask value of selected processors)
#
# ProcessPriority
# Приоритет процесса (Используется только в Windows)
# Стандартно: 1 (ВАЖНЫЙ)
# 0 (Нормальный)
#
# Compression
# Уровень сжатия данных, отправляемых клиенту
# Стандартно: 1 (скорость)
# 9 (максимальное сжатие)
#
# TcpNoDelay
# TCP Nagle - настройки алгоритма
# Стандартно: 0 (Nagle-алгоритм включен , меньше трафика, пинг больше)
# 1 (TCP_NO_DELAY, отключение Nagle-алгоритма, больше трафика, меньший пинг)
#
# PlayerLimit
# Максимально число игроков в игре, не считая Модераторов, ГМов и Администраторов
# Стандартно: 100
# 0 (неограниченно)
# -1 (только для Модераторов, ГМов и Администраторов)
# -2 (только для ГМов и Администраторов)
# -3 (только для Администраторов)
#
# SaveRespawnTimeImmediately
# Сохранение времени респавна мобов (если убиты) и объектов (если открыты/использованы)
# Стандартно: 1 (сохранение без ожидания выгрузки грида)
# 0 (сохранение при выгрузке грида)
#
# MaxOverspeedPings
# Максимальное число критически большого пинга у игрока, после которого он будет выкинут из игры (минимум - 2, 0 для отключения опции)
# Стандартно: 2
#
# GridUnload
# Выгрузка гридов (Если у вас полно памяти, можете отключить опцию, дабы ускорить процесс перехода игрока на грид, где он уже был ранее)
# Стандартно: 1 (выгружать гриды)
# 0 (не выгружать гриды)
#
# SocketSelectTime
# Стандартное время (в милисекундах)
#
# GridCleanUpDelay
# Стандартное время выгрузки гридов (в милисекундах)
#
# MapUpdateInterval
# Стандартное время обновления карт (в милисекундах)
#
# ChangeWeatherInterval
# Стандартное время обновления опций погоды (в милисекундах)
#
# PlayerSaveInterval
# Стандартный промежуток времени между сохранениями игроков (в милисекундах)
#
# vmap.enableLOS
# vmap.enableHeight
# Включить/отключить поддержку VMmap для вычисления высоты и линии видимости
# Стандартно: 1 (да)
# 0 (нет)
#
# vmap.ignoreMapIds
# Номер карт, на которых VMmap работать не будут
# Разграничивать ИД с помощью ','
# Если значений несколько, они должны быть взяты в кавычки (")
# Пример: "369,0,1,530"
#
# vmap.ignoreSpellIds
# ИД заклинаний, не просчитываемых системой VMmap
# Разграничивать ИД с помощью ','
#
# UpdateUptimeInterval
# Интервал записи информации об аптайме в таблицу БД ('uptime'). Значение должно быть положительным
# Стандартно: 10 (минут)
#
# MaxCoreStuckTime
# Периодическая проверка на фриз (полную остановку, зависание) процесса, после которой при положительном
# результате сервер будет отключен через определенное время. Должно быть > 0.
# Рекомендуется > 10 секунд, если вы используете эту опцию.
# Стандартно: 0 (Отключено)
#
# AddonChannel
# Разрешить/запретить использование аддонами каналов сервера
# (некоторые аддоны при этом могут работать неправильно)
# Стандартно: 1 (разрешить использование)
# 0 (запретить использование)
#
###########################################################################################

###########################################################################################
# ЛОГИРОВАНИЕ
#
# LogSQL
# Включение логирования команд ГМов, при котором все запросы записываются в файл
# Все команды записываются в файлы вида: YYYY-MM-DD_logSQL.sql
# В полночь каждого нового дня начинается вестись новый лог, при это старые файлы не удаляются.
# Стандартно: 1 - записывать
# 0 - Не записывать
#
# PidFile
# Создавать ли PID-файл
# Стандартно: "" - не создавать
# "./worldd.pid" - создавать (рекомендуемое имя)
#
# LogLevel
# Уровень логирования консоли
# 0 = Минимальный; 1 = Базовый + Ошибки; 2 = Детальный; 3 = Полный/Отладочный уровень
# Стандартно: 3
#
# LogTime
# Включать в логи консоли записи о времени [hh:mm:ss]
# Стандартно: 0 (нет)
# 1 (да)
#
# LogFile
# Имя файла лога
# Стандартно: "Server.log"
# "" - не создавать
#
# LogTimestamp
# Включать ли в имя файла лога запись о времени и дате
# Стандартно: 0 - нет
# 1 - включать. Вид: Logname_YYYY-MM-DD_HH-MM-SS.Ext для Logname.Ext
#
# LogFileLevel
# Уровень огирования файлов сервера
# 0 = Минимальный; 1 = Базовый + Ошибки; 2 = Детальный; 3 = Полный/Отладочный уровень
# Стандартно: 0
#
# LogFilter_TransportMoves
# LogFilter_CreatureMoves
# LogFilter_VisibilityChanges
# Фильтры логов
# Стандартно: 1 - не включать ни в какой уровень логов
# 0 - включать при наличии требуемого уровня логов
#
# WorldLogFile
# Лог-файл для сервера игрового мира
# Стандартно: "world.log"
#
# DBErrorLogFile
# Лог-файл для записи об ошибках БД при запуске сервера
# Стандартно: "DBErrors.log"
#
# CharLogFile
# Лог-файл для записи операций с персонажами
# Стандартно: "Char.log"
# "" - не создавать
#
# CharLogTimestamp
# Включать ли в имя файла-лога персонажей запись о времени и дате
# Стандартно: 0 - нет
# 1 - включать. Вид: Logname_YYYY-MM-DD_HH-MM-SS.Ext для Logname.Ext
#
# CharLogDump
# Перед удаление персонажа сбросить сведения о нем в файл лога
# Для восстановления персонажа удалите строки:
# line == START DUMP == to line == END DUMP == и восстановите чара, использую команду logdump
# Стандартно: 0 - не сбрасывать информацию при удалении
# 1 - сбрасывать информацию при удалении
#
# GmLogFile
# Логирование в файл команд ГМов
# Стандартно: "" (Отключено)
#
# GmLogTimestamp
# Включать ли в имя файла лога команд ГМов запись о времени и дате
# Стандартно: 0 - нет
# 1 - включать. Вид: Logname_YYYY-MM-DD_HH-MM-SS.Ext для Logname.Ext
#
# RaLogFile
# Логирование в файл команд консоли удаленного доступа
# Стандартно: "Ra.log"
# "" - не создавать
#
# LogColors
# Цвета в сообщениях (формата "normal_color details_color debug_color error_color)
# Цвета: 0 - ЧЕРНЫЙ, 1 - КРАСНЫЙ, 2 - ЗЕЛЕНЫЙ, 3 - КОРИЧНЕВЫЙ, 4 - СИНИЙ, 5 - ПУРПУРНЫЙ,
# 6 - CYAN (?), 7 - СЕРЫЙ, 8 - ЖЕЛТЫЙ, 9 - СВЕТЛО-КРАСНЫЙ, 10 - САЛАТОВЫЙ, 11 - ГОЛУБОЙ,
# 12 - СВЕТЛО-ПУРПУРНЫЙ, 13 - LCYAN (?), 14 - БЕЛЫЙ
# Стандартно: "" - без цветов
# Пример: "13 7 11 9"
#
###########################################################################################

###########################################################################################
# НАСТРОЙКИ СЕРВЕРА
#
# GameType
# Тип сервера
# 0 = NORMAL;1 = PVP; 4 = NORMAL; 6 = RP; 8 = RPPVP
# также особый тип: 16 FFA_PVP (полное пвп, кроме зон отдыха)
#
# Expansion
# Разрешено ли использовать БК
# Стандартно: 1 - проверить наличие БК, и если он имеется, разрешить использовать новые карты,создавать
# персонажей новых рас и т.п.)
# 0 - не проверять наличие БК, не разрешать посещать новые территории, создавать новые расы и т.п.,
# игнорировать настройки аккаунта)
#
# DBC.Locale
# Языковая настройка DBC
# 0 = Английский; 1 = Korean; 2 = French; 3 = German; 4 = Chinese; 5 = Taiwanese; 6 = Spanish; 7 = Русский
# 8 = Unknown; 9 = Unknown; 10 = Unknown; 11 = Unknown; 12 = Unknown; 13 = Unknown; 14 = Unknown; 15 = Unknown
# 255 = Авто-определение (Стандартно)
#
# StrictPlayerNames
# Запретить создавать персонажей с именами, написанными не на латинице и при попытке логина такого персонажа выдавать запрос на переименование
# Стандартно: 0 (нет)
# 1 (да)
#
# StrictCharterNames
# Ограничить названия гильдий и арена-команд в написании исключительно латиницей и пробелами
# Стандартно: 0 (нет)
# 1 (да)
# StrictPetNames
# Ограничить имена петов в написании исключительно латиницей
# Стандартно: 0 (нет)
# 1 (да)
#
# SkipCinematics
# Отключение показа ролика в начале игры новым персонажем
# Стандартно: 0 - показывать для каждого нового персонажа
# 1 - только первому персонажа данной расы
# 2 - не показывать в любом случае
#
# MaxPlayerLevel
# Максимальный уровень героев, который можно достичь через получение опыта (в промежутке от 1 до 255)
# Не рекомендуется изменять
# Стандартно: 70
#
# MaxHonorPoints
# Максимальное количество очков чести, которое может иметь герой
# Стандартно: 75000
#
# MaxArenaPoints
# Максимальное количество очков арены, которое может иметь герой
# Стандартно: 5000
#
# StartPlayerLevel
# Начальный уровень персонажа при создании (от 1 до MaxPlayerLevel)
# Стандартно: 1
#
# ActivateWeather
# Активировать систему погоды
# Стандартно: 1 (да)
# 0 (нет)
#
# Battleground.CastDeserter
# Накладывать ли штраф на игрока, досрочно покинувшего БГ
# Стандартно: 1 (да)
# 0 (нет)
#
# CastUnstuck
# Разрешить кастовать спелл командой .start
# Стандартно: 1 (да)
# 0 (нет)
#
# Instance.IgnoreLevel
# Игнорировать требования к уровню игрока при посещении инстанса
# Стандартно: 0 (нет)
# 1 (да)
#
# Instance.IgnoreRaid
# Игнорировать требования к рейду при посещении инстанса
# Стандартно: 0 (нет)
# 1 (да)
#
# Instance.ResetTimeHour
# Час дня, в который происходит сброс инстансов.
# Стандартно: 4
#
# Instance.UnloadDelay
# Выгружать карту инстанса после некоторого времени, в течении которого игрок находится вне его.
# Стандартно: 1800000 (милисекунд, т.е. 30 минут)
# 0 (сохраняются вплоть до сброса)
#
# Quests.LowLevelHideDiff
# Разница в уровне, при которой квесты малого уровня скрываются для игрока
# Стандартно: 4
# -1 (показывать на карте все возможные квесты)
#
# Quests.HighLevelHideDiff
# Разница в уровне, при которой квесты большого уровня скрываются для игрока
# Стандартно: 7
# -1 (показывать на карте все возможные квесты)
#
# MaxPrimaryTradeSkill
# Максмальное кол-во первичных профессий, которые может выучить игрок
# Стандартно: 2
# Mаксимально : 10
#
# MinPetitionSigns
# Минимальное кол-во подписей для создания гильдии
# Стандартно: 9
#
# MaxGroupXPDistance
# Максимальное расстояние члена группы от убитого существа, при котором он получает опыт.
# Стандартно: 74
#
# MailDeliveryDelay
# Задержка при пересылке вещей
# Стандартно: 3600 секунд (1 час)
#
# SkillChance.Prospecting
# Шанс получить повышения уровня навыка на основе исследования
# Стандартно: 0 - не получает
# 1 - есть возможность получить
#
# Event.Announce
# Стандартно: 0 (нет)
# 1 (да)
#
# BeepAtStart
# Сигнал спикера при включении эмулятора (в основном работает только в *nix системах)
# Стандартно: 1 (да)
# 0 (нет)
#
# Motd
# Сообщение для игроков при подключении к игровому миру ( '@' обозначает новую строку).
#
###########################################################################################

###########################################################################################
# ВЗАИМОДЕЙСТВИЕ ИГРОКОВ
#
# AllowTwoSide.Accounts
# Разрешить ли игрокам создавать персонажей разных фракций на одном аккаунте независимо от типа сервера
# Стандартно: 0 (Не разршено)
# 1 (Разрешено)
#
# AllowTwoSide.Interaction.Chat
# AllowTwoSide.Interaction.Channel
# AllowTwoSide.Interaction.Group
# AllowTwoSide.Interaction.Guild
# AllowTwoSide.Interaction.Trade
# AllowTwoSide.Interaction.Mail
# Разрешить общий чат вида :chat(обычный:say,yell);channel(канал чата)group(join)guild(join);торговля между игроками
# разных фракций.
# Стандартно: 0 (Не разрешено)
# 1 (Разрешено)
#
# AllowTwoSide.WhoList
# Разрешить ли показ игроков противоположной фракции в /who списке.
# Стандартно: 0 (Не разрешено)
# 1 (Разрешено)
#
# AllowTwoSide.AddFriend
# Разрешить ли добавление в друзья игроков противоположной фракции.
# Стандартно: 0 (Не разрешено)
# 1 (Разрешено)
#
# TalentsInspecting
# Разрешить ли просматривать в окне инспекта таланты другого персонажа (Не распространяется на ГМов)
# Стандартно: 1 (разрешить)
# 0 (запретить)
#
###########################################################################################

###########################################################################################
# НАСТРОЙКИ СУЩЕСТВ
#
# Rate.Creature.Aggro
# Отключение или процентарная настройка агро-радиуса.
# Стандартно: 1 - 100%
# 1.5 - 150%
# 0 - выключить (0%)
#
# CreatureFamilyAssistenceRadius
# Радиус взаимопомощи дружественных мобов
# Стандартно: 10
# 0 - отключить
#
# Corpse.Decay.NORMAL
# Corpse.Decay.RARE
# Corpse.Decay.ELITE
# Corpse.Decay.RAREELITE
# Corpse.Decay.WORLDBOSS
# Время в секундах, после которого труп моба исчезает (если с него не был снят лут).
# Стандартно: 60, 300, 300, 300, 3600
#
# Rate.Corpse.Decay.Looted
# Множитель Corpse.Decay.* config., обозначает как долго будет лежать труп, с которого был снят лут.
# Стандартно: 0.1
#
# Rate.Creature.Normal.Damage
# Rate.Creature.Elite.Elite.Damage
# Rate.Creature.Elite.RAREELITE.Damage
# Rate.Creature.Elite.WORLDBOSS.Damage
# Rate.Creature.Elite.RARE.Damage
# Рейты урона существ.
# Примеры: 2 - урон будет 2x, 1.7 - 1.7x.
#
# Rate.Creature.Normal.SpellDamage
# Rate.Creature.Elite.Elite.SpellDamage
# Rate.Creature.Elite.RAREELITE.SpellDamage
# Rate.Creature.Elite.WORLDBOSS.SpellDamag
# Rate.Creature.Elite.RARE.SpellDamage
# Рейты урона существ от заклинаний.
# Примеры: 2 - урон заклинаниями будет 2x, 1.7 - 1.7x.
#
# Rate.Creature.Normal.HP
# Rate.Creature.Elite.Elite.HP
# Rate.Creature.Elite.RAREELITE.HP
# Rate.Creature.Elite.WORLDBOSS.HP
# Rate.Creature.Elite.RARE.HP
# Множители количества здоровья у существ.
# Примеры: 2 - существа будут иметь двойное кол-во здоровья, 1.7 - 1.7x.
#
###########################################################################################

###########################################################################################
# УСТАНОВКИ ЧАТА
#
# ChatFakeMessagePreventing
# Защита чата против фейковых сообщений, содержащих много пробелов в строках
# Стандартно: 0 (отключено)
# 1 (включено)
#
# ChatFlood.MessageCount
# Анти-флуд защита, срабатывающая после указанного кол-ва беспрерывных сообщений
# Стандартно: 10
# 0 (отключить анти-флуд защиту)
#
# ChatFlood.MessageDelay
# Анти-флуд защита, следит за временем минимального промежутка между двумя сообщениями в чате
# Стандартно: 1 (секунда)
#
# ChatFlood.MuteTime
# Анти-флуд защита, параметр долготы отключения чата игроку при срабатывании защиты
# Стандартно: 10 (секунд)
#
# Channel.RestrictedLfg
# Запретить использовать LookupForGroup канал незарегистрированным в ЛФГ-интерфейсе игроками
# Стандартно: 1 (да)
# 0 (нет)
#
# Channel.SilentlyGMJoin
# Скрытое подключение ГМов к каналам чата
# Стандартно: 0 (появление анонсируется, как и у других игроков)
# 1 (ГМы заходят без анонса)
#
###########################################################################################

###########################################################################################
# НАСТРОЙКИ ГЕЙМ-МАСТЕРОВ
#
# GM.WhisperingTo
# Может ли ГМ принимать личные послания от игроков или нет
# Стандартно: 0 (не смогут)
# 1 (смогут)
#
# GM.InGMList
# Показывать ли ГМа в списке игроков, если ГМ-режим отключен
# Стандартно: 0 (нет)
# 1 (да)
#
# GM.InWhoList
# Отображаются ли ГМы в списке игроков (если видимы)
# Стандартно: 0 (нет)
# 1 (да)
#
# GM.LoginState
# Стандартный режим ГМа при входе в игру
# Стандартно: 2 (как в прошлый раз)
# 0 (отключен)
# 1 (eвключен)
#
# GM.LogTrade
# Требуется ли логировать торговые операции ГМов
# Стандартно: 1 (включать)
# 0 (не включать)
#
###########################################################################################

###########################################################################################
# ВИДИМОСТЬ И РАДИУСЫ
#
# Visibility.GroupMode
# Отношения видимости игроками одной группы (рейда, фракции) невидимого юнита
# Стандартно: 0 (стандартно: только игроки в одной группе могут 100% видеть невидимого юнита)
# 1 (члены одного рейда могут 100% видеть невидимого юнита)
# 2 (игроки одной фракции могут 100% видеть невидимого юнита)
#
# Visibility.Distance.Creature
# Visibility.Distance.Player
# Дальность видимости существ и игроков
# Максимальное значение: ~ 166
# Минимальное значение зависит от объекта
# Стандартно: 66
# Минимальная видимость равна максимальному агро-радиусу (45) * Rate.Creature.Aggro
#
# Visibility.Distance.Object
# Дальность видимости гейм-объектов, трупов, костей и т.п.
# Минимальное значение равно дистанции взаимодействия (5)
#
# Visibility.Distance.InFlight
# Дальность видимости в полете
# Минимальное значение равно 0 (не показывать никаких объектов)
#
###########################################################################################

###########################################################################################
# РЕЙТЫ СЕРВЕРА
#
# Rate.Health
# Rate.Mana
# Rate.Rage.Income
# Rate.Rage.Loss
# Rate.Focus
# Rate.Loyalty
# Рейты регенерации здоровья, маны, а также гнева (rage), начисляющегося за нанесенный урон
# Стандартно: 1
#
# Rate.Drop.Items
# Rate.Drop.Money
# Рейты дропа
# Стандартно: 1
#
# Rate.XP.Kill
# Rate.XP.Quest
# Rate.XP.Explore
# Рейты получения опыта
# Стандартно: 1
#
# Rate.XP.PastLevel70
# Необходимое кол-во опыта для достижения уровня выше 70 (рейт ниже 1 не рекомендуется)
# Стандартно: 1
#
# Rate.Rest.InGame
# Rate.Rest.Offline.InTavernOrCity
# Rate.Rest.Offline.InWilderness
# Рейты очков отдыха (1 - нормальные, 2 - двойные, 0.5 - половинные и т.д.) от стандартного значения.
#
# Rate.Damage.Fall
# Рейт крона от падения. (1 - нормальный, 2 - двойной, 0.5 - половинный и т.д.)
#
# Rate.Auction.Time
# Rate.Auction.Deposit
# Rate.Auction.Cut
# Рейты опций аукциона (время аукциона, стартовый депозит, взимаемые аукционом деньги и т.д.)
#
# Rate.Honor
# Рейт получения очков славы (Honor)
#
# Rate.Mining.Amount
# Rate.Mining.Next
# Рейты Добычи руды (Mining.Amount изменяет минимальное/максимальное кол-во использование одной залежи,
# Mining.Next устанавливает шанс повторного использования залежи)
#
# Rate.Talent
# Рейт получения очков талантов
# Стандартно: 1
#
# Rate.Reputation.Gain
# Рейт получения очков репутации с фракциями
# Стандартно: 1
#
# Rate.InstanceResetTime
# Множитель кол-ва дней, после которых инстансы для игрока перезагружаются.
# Стандартно: 1
#
# SkillGain.Crafting
# SkillGain.Defense
# SkillGain.Gathering
# SkillGain.Weapon
# Количество очков навыка, получаемое игроком при крафте/защите/сборе/атаке.
# Стандартно: 1
#
# SkillChance.Orange
# SkillChance.Yellow
# SkillChance.Green
# SkillChance.Grey
# Шанс получения очка навыка
# Стандартно: 100-75-25-0
#
# SkillChance.MiningSteps
# SkillChance.SkinningSteps
# Для мининга и скининга: шанс понизить уровень навыка
# Стандартно: 0 - не понижается
#
#
# DurabilityLossChance.Damage
# Шанс повредить одну из вещей брони при получении урона
# Стандартно: 0.5 (100/0.5 = 200) При каждой 200-той атаке теряется очко прочности
#
# DurabilityLossChance.Absorb
# Шанс повредить одну из вещей брони при адсорбе урона
# Стандартно: 0.5 (100/0.5 = 200) При каждой 200-том адсорбе теряется очко прочности
#
# DurabilityLossChance.Parry
# Шанс повредить оружие при парировании
# Стандартно: 0.05 (100/0.05 = 2000) При каждой 2000-ном парировании теряется очко прочности
#
# DurabilityLossChance.Block
# Шанс повредить щит при блокировке урона
# Стандартно: 0.05 (100/0.05 = 2000) При каждой 2000-том блоке теряется очко прочности
#
# Death.SicknessLevel
# Начальная планка уровня, когда игроки получают штраф за возрождение на кладбище.
# Стандартно: 11
# -10 - персонаж получит полное время (10min) даже на первом уровне
# maxplayerlevel+1 - персонажи не будут получать штрафа на любом уровне
#
# Death.CorpseReclaimDelay.PvP
# Death.CorpseReclaimDelay.PvE
# Отключение/включение опции увеличения времени возрождения игрока при ПвП/ПвЕ смертях.
# Стандартно: 1 (включено)
# 0 (отключено)
#
###########################################################################################

###########################################################################################
# КОНСОЛЬ И УДАЛЕННЫЙ ДОСТУП
#
# Console.Enable
# Включает/отключает консоль
# Стандартно: 1 - on
# 0 - off
#
# Ra.Enable
# Включает/отключает удаленную консоль
# Стандартно: 0 - off
# 1 - on
#
# Ra.IP
# Стандартный ИП-адрес для удаленной консоли
#
# Ra.Port
# Стандартный порт для удаленной консоли
#
# Ra.MinLevel
# Минимальный уровень доступа, требуемый для доступа.
# Стандартно: 3
#
# Ra.Secure
# Выкинуть клиент при вводе неправильного пароля
#
###########################################################################################


Разбор пакетов WoW

Разбор структуры пакетов из wow.exe это просто! :)

Нужно:
1. Интуиция.
2. Знание "СИ".
3. IDA+HexRays.
4. Терпение. :)

Качаем IDA+HexRays.
нацеливаем IDA на wow.exe
декомпилируем, потом сохраняем всё в .c файл с помощью HexRyas:)

ищем в файле строчку типа
(461, (int)

находим её примерно в этом месте
sub_5F9870(459, (int)sub_401220, 0);
sub_5F9870(461, (int)sub_401330, 0);

итак
sub_5F9870() это что то типа OpcodeHandler()
для удобства переименовываем
sub_5F9870->OpcodeHandler
получаем
OpcodeHandler(459, (int)sub_401220, 0);
OpcodeHandler(461, (int)sub_401330, 0);

sub_401220() это функция обработки пакета под номером 459(SMSG_NOTIFICATION)
ищём по коду эту функцию sub_401220().
......
находим что то типа
//----- (00401220) --------------------------------------------------------
signed int __usercall sub_401220<eax>(__int64 a1<edi:ebp>, int a2, int a3, int a4, int a5)
{
....................

v5 = (int)&v9;
v10 = 1;
v11 = 0;
sub_422B90(a5, (int)&v9, 0x1000u);
if ( !sub_6A6BF0(&v9, "DEBUGACTION: ", 0xDu) )
v5 = (int)&v12;
if ( *(_BYTE *)v5 == 126 )

sub_422B90() это функция для чтения строки(СИ строки с нулём на конце) из опкода.
переименовываем её в ReadString()

находим в начале файла.
int __thiscall ReadString(int this, int a2, unsigned int a3);

и переименовываем все рядом стоящими функции типа так...
int __thiscall ReadByte(int this, int a2);
int __thiscall ReadInt8(int this, int a2);
int __thiscall ReadInt16(int this, int a2);
int __thiscall ReadInt32(int this, int a2);
int __thiscall ReadInt64(int this, int a2);
int __thiscall ReadFloat(int this, int a2);
>int __thiscall ReadString(int this, int a2, unsigned int a3);
int __thiscall ReadString2(int this, int a2, int a3);
int __thiscall callReadString2(int this, int a2, int a3);
int __thiscall ReadPascalString(int this, int a2, int a3);

теперь мы знаем какие функции какой тип данных считывают из пакета :)

ИТАК. теперь мы хотим разобрать структуру какого либо SMSG пакета.
Обратите внимание, что CMSG пакеты разбираются по другому и пока что я это описывать не буду.:)
И ещё, некоторые пакеты SMSG которые есть в Opcodes.h(Мангос) их нету в wow.exe
это связанно с тем что эти пакеты только для GM клиента и в обычном клиенте их просто нет:)

Так вот... к примеру мы хотим узнать что за структура у пакета
SMSG_LOOT_LIST = 0x3F9,
переводим 0x3F9 в десятичное число и ищём по нашему коду.
OpcodeHandler(1017, (int)

нашли к примеру
OpcodeHandler(1017, (int)sub_65E100, 0);

переходим к sub_65E100

//----- (0065E100) --------------------------------------------------------
signed int __cdecl sub_65E100(int a1, int a2, int a3, int a4)
{
int v4; // eax@1
int v5; // esi@1
__int64 v7; // [sp+4h] [bp-8h]@1

  v5 = a4;
ReadInt64(a4,
(int)&v7);
v4 = sub_46DB20(v7, 8);
if ( v4
)
sub_65D6D0(v4, v5);
return 1;
}

Видим что считывается только ReadInt64() int64, скорее всего этого GUID чего либо.:)
всё, структуру опкода мы знаем:)

все адреса приведённые здесь sub_65E100, sub_401220 и т.д. меняются с каждой версией клиента,
так что нужно полагаться на интуицию ;)

и ещё... клиент бывает считывает Пакованный гуид из пакета...
функция считывания выглядит примерно так

//----- (006A5870) --------------------------------------------------------
int __cdecl sub_6A5870(int a1, int a2)
{
int v2; // ebx@1
unsigned int v3; // edi@1
int v4; // esi@1
int v6; // ecx@1
__int64 v7; // qax@3
unsigned __int8 v8; // [sp+Fh] [bp-1h]@3

  v6 = a1;
v4 = a2;
v2 =
0;
*(_DWORD *)a2 = 0;
*(_DWORD *)(a2 + 4) = 0;
ReadInt8(v6, (int)((char *)&a2 + 3));
v3 = 0;
do
{
if ( (unsigned __int8)(1 << v2) &
BYTE3(a2) )
{
ReadInt8(a1, (int)&v8);
v7 = v8 <<
(char)v3;
*(_DWORD *)v4 |=
v7;
*(_DWORD *)(v4 + 4) |= *((_DWORD *)&v7
+ 1);
}
v3 +=
8;
++v2;
}
while ( v3 < 0x40
);
return a1;
}

можно найти быстро её если искать строку
ReadInt8(v6, (int)((char *)&a2 + 3));
но!!!!!! строка не уникальна и в других версиях клиента может меняться.

Подготовил и опубликовал Dereka.Alex(root admin RMDC)


Разработчики

ApoC
arrai
dereka
Derex
DiSlord
freghar
hunuza
kizura
Komdori
maximus
Neo2003
nitrogrlie
Ntsc
ralf
ratatatata
sanitariu
septimus
TheLuda
TOM_RUS
Triplex
unique1
vendy
VladimirMaNGOS
Wyk3d
xoxo
zyg