Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Новичкам (http://mangos.ytdb.ru/forumdisplay.php?f=40)
-   -   Вопрос по Attributes (http://mangos.ytdb.ru/showthread.php?t=5446)

Velvet 16.05.2012 20:46

Вопрос по Attributes
 
Копался в spell.dbc (TBC) чтобы посмотреть информацию по спелам, которые имеют эфект DISPEL_MAGIC.
И у всех спелов ( Mass Dispel / Dispel Magic / Devour Magic / Arcane Shot / Purge ) в поле Attributes вписано значение 0x10000, ну у Mass Dispel 0x20010000 -> 0x2000000 + 0x10000.

А в SharedDefines.h написана следующая вещь:

Код:

#define SPELL_ATTR_NOT_SHAPESHIFT                0x00010000 // 16 Not while shapeshifted
Взять Devour Magic у лока, а темболее его пэта Fellhunter( у которого этот спел) и в помине нет никаких форм.
Если взять приста, то Dispel и Mass Dispel должны кастоваться и в Shadowform, а это уже Shapeshift. А я сильно сомневаюсь, что Близарды такие идиоты.
У хантов ( Arcane Shot ) тоже нету никаких форм.
Единственное, у кого есть форма, это Шаман( Ghost Wolf ) -> Purge.

Исключение из этого всего состваил Маговский Spellsteal у которого атрибут 0x40000.

Собственно возникает дурацкий вопрос. Причём тут формы? И с чего вобще взяли, что этот атрибут отвечает за формы?
Заранее спасибо за разъяснения.

Lordronn 16.05.2012 21:14

Этот атрибут значит, что спелл кастуется вне формы

Velvet 16.05.2012 21:34

Цитата:

Сообщение от Lordronn (Сообщение 27350)
Этот атрибут значит, что спелл кастуется вне формы

:mda:... ну да, зачем читать все сообщение? Лучше сразу написать какой попало ответ.
Я итак догадался что "Not while shapeshifted" это и означает.
Только все дело что у Локов нету форм вобще и куча спелов привязано к значению 0х10000. А диспел и масс диспел у которых этот атрибут должны кастоваться в Shadowform ( а это ниразу не отвечает требованию "Not while shapeshifted" ).

Lordronn 16.05.2012 21:43

Этот аттрибут вроде не всегда значит "не в любой форме", он может значить "не в форме X"

Velvet 16.05.2012 21:48

Допустим так. Но я наверное тупой... В упор не могу понять зачем локу делать проверку на Shadow Bolt, Searing Pain, etc., если у него нету форм в помине...

Den 16.05.2012 21:55

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

Velvet 16.05.2012 22:12

Цитата:

Сообщение от Den (Сообщение 27354)
Ну так все классовые спелы которые не требуют форм (за исключением некоторых положительных с использованием на себя) идут с аттрибутом SPELL_ATTR_NOT_SHAPESHIFT, а которые кастятся в формах идут без него. Можно догадаться, что это сделано для проверок.

Пример спелов с этим атрибутом:
Dispel, Mass Dispel пристовский не положительные( можно кастовать в Shadowform -> Shapeshift ).
Ptayer of Healing пристовский положительный ( нельзя кастовать в Shadowform )
Healing Wave шамовский положительный ( нельзя кастовать в ghost wolf )
Lightning Bolt шамовский не положительный ( нельзя кастовать в ghost wolf )

WTF???=))) Уже каким то абсурдом попахивает...

Velvet 16.05.2012 22:17

Всё я понял. Спасибо.
Я пример подобрал, теперь понял. Если спел требует форму кота, к примеру, он идёт без этого атрибута. Если не требует никакую форму, то идёт с этим атрибутом.

Название неок как и коммент для него.
Надо будет у себя переименовать в DO_NOT_REQ_SHAPESHIFT. Что-нибудь такое...

Den 16.05.2012 22:36

А как же если спел кастуется и в форме и без ? Пример пристовский диспел.
То тогда добавляется еще один аттрибут SPELL_ATTR_EX2_NOT_NEED_SHAPESHIFT , выходит тема расскрыта ? ))

Velvet 16.05.2012 22:41

Впринципе да :yes3: Но опять таки надо переименовать в что-нибудь типа SPELL_ATTR_EX2_NOT_NEED_SHAPELOST. Чтобы больше подходило по смыслу.
Ещё раз спасибо.

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

if(actAsShifted)
    {
        if (spellInfo->Attributes & SPELL_ATTR_NOT_SHAPESHIFT) // not while shapeshifted
            return SPELL_FAILED_NOT_SHAPESHIFT;
        else if (spellInfo->Stances != 0)                  // needs other shapeshift
            return SPELL_FAILED_ONLY_SHAPESHIFT;
    }

Как результат, когда в стелсе пытаешься сесть на маунта, вместо того, чтобы снялся стелс и начал кастоваться маунт тебя посылает вот такими красненькими букавками: "Not while shapeshift" =)))

Йоха 17.05.2012 10:33

Цитата:

Сообщение от Velvet (Сообщение 27353)
Допустим так. Но я наверное тупой... В упор не могу понять зачем локу делать проверку на Shadow Bolt, Searing Pain, etc., если у него нету форм в помине...

Здрасте как это нету, а это что по твоему ? Метаморфоза

rsa 17.05.2012 12:39

Цитата:

Сообщение от Velvet (Сообщение 27359)
Как результат, когда в стелсе пытаешься сесть на маунта, вместо того, чтобы снялся стелс и начал кастоваться маунт тебя посылает вот такими красненькими букавками: "Not while shapeshift" =)))

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

Velvet 17.05.2012 15:15

Цитата:

Сообщение от Йоха (Сообщение 27361)
Здрасте как это нету, а это что по твоему ? Метаморфоза

Это ЛК уже или вобще ката, я хз. Я в первом посте написал "TBC" -> The Burning Crusade :)

Цитата:

Сообщение от rsa (Сообщение 27365)
ошибка уже 2 года как поправлена.
PS шэйпшифт-формы есть у всех, даже у паладина, а уж у лока-то всем известная метаморфоза.

На ЛК может и исправлена, я не знаю, я ЛК не интересуюсь. А на Mangos-One он до сих пор есть.

partizanes 18.05.2012 01:08

если верить коментам на том же wowhead то было оно и на 2.4.3
http://ru.wowhead.com/spell=59672#english-comments
Английские комментарии поиск по (Обновление 2.4.3)


Текущее время: 19:56. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS