• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Заклинания у питомца
M@Z@
Рыцарь
Дорогие форумчане. Столкнулся с такой проблемой

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

НО

Вот проблема. Использовать Пет, Созданные мной скиллы, ну увы ни в какую. Заклинание просто обновляется на секунду иль же вообще не работает.
(При использовании Event AI все работает исправно, но использовать спелл игрок не может.(описал выше что происходит) а нужно чтобы игрок мог на него клацнуть)

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

Error: unknown PET spell id 29466

Такой спелл не был нигде записан (ни у NPC , ни в Event AI). Его просто не существует даже в spell.dbc, однако почему-то выдает сию ошибку.

Вопрос в том, как исправить проблему связаную с обновлением рисованных спеллов у питомца

-------------------------------

P.s Имею так же вопрос связанный с призывом существ у питомца. Они почему-то не нападают на врага и смена их фракции ничего не меняет)

Надеюсь на вашу помощь
Сообщение # 1 отредактировано M@Z@ - Воскресенье, 14.02.2016, 13:41
SamuraiJack
Скаут
Цитата M@Z@ ()
P.s Имею так же вопрос связанный с призывом существ у питомца. Они почему-то не нападают на врага и смена их фракции ничего не меняет)
Если я правильно понял ваш вопрос и речь идет о питомцах, которыми игрок не управляет, то их действия могут описываться в CreatureScript.
Например у огненного элементаля шамана, нападение задается в его скрипте (файл pet_shaman.cpp):
Код
class npc_pet_shaman_fire_elemental : public CreatureScript
{
    public:
        npc_pet_shaman_fire_elemental() : CreatureScript("npc_pet_shaman_fire_elemental") { }

        struct npc_pet_shaman_fire_elementalAI : public ScriptedAI
        {
            npc_pet_shaman_fire_elementalAI(Creature* creature) : ScriptedAI(creature) { }

            void UpdateAI(uint32 diff) override
            {
               ...
                DoMeleeAttackIfReady(); // Вот в этой строчке задается нападение...
            }
            ...            
        };
        CreatureAI* GetAI(Creature* creature) const override
        {
            return new npc_pet_shaman_fire_elementalAI(creature);
        }
};

Аналогичным образом описываются например гаргулья и ТРО.
Сообщение # 2 отредактировано SamuraiJack - Вторник, 16.02.2016, 18:34
p620
Маршал
SamuraiJack, это потому делается, что для существа переопределяется AI. В стандартном (данном) случае все уже прописано.
ТС, Вы свою проблему понятнее описать можете?
В частности, что вот это значит?
Цитата M@Z@ ()
заклинания способностей питомца

---
Цитата M@Z@ ()
в общем все работает

Цитата M@Z@ ()
и их же может нажать игрок


Цитата M@Z@ ()
Вот проблема. Использовать Пет, Созданные мной скиллы, ну увы ни в какую.

Цитата M@Z@ ()
использовать спелл игрок не может

Умение вводить людей в заблуждение - весьма полезный навык, я понимаю, но уверены ли Вы, что тема с призывом о помощи является уместным для него испытательным полигоном?..
Сообщение # 3 написано 16.02.2016 в 19:09
M@Z@
Рыцарь
Цитата SamuraiJack ()
Если я правильно понял ваш вопрос и речь идет о питомцах, которыми игрок не управляет, то их действия могут описываться в CreatureScript.Например у огненного элементаля шамана, нападение задается в его скрипте (файл pet_shaman.cpp):


Я имел в виду аналог призыва петомца охотника, но с иными спеллами , которые он может использовать (И КОТОРЫЕ может нажимать игрок, чтобы его петомец мог их использовать)
Аналогом данного спелла является: spell id 7993 который призывает древня "НЕ" обладающего заклинаниями. И вот если ему прописать спелл призыва (даже через EventAI, призываемые уже ИМ существа, не нападают на вражеских NPC
Однако если же просто заспаунить NPC (без заклинания), то подконтрольные ему существа нападают на врага.

Цитата p620 ()
заклинания способностей питомца


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

Цитата p620 ()
в общем все работает

Работает сам НПС, и заклинание призыва этого НПС вот что я имел в виду, но лишь те которые уже есть в spell.dbc. (Как EventAI так и с панели петомцев)

Цитата p620 ()
и их же может нажать игрок

Нажать на заклинание в меню петомцев, которое прописано призываемому NPC, игрок не может или может, но оно не работает (обновляется иконка)

Цитата p620 ()
Вот проблема. Использовать Пет, Созданные мной скиллы, ну увы ни в какую.

Уже имеющиеся скиллы(они же спеллы(заклинания\способности)) из Spell.dbc пет использовать МОЖЕТ и икрок их МОЖЕТ нажать. (соответственно пет реагирует и использует их)
НО если создаешь новый спелл (он же скилл(способность)) то пет его не может использовать. Иконка на панели петомцев просто обновляется и всё. Собственно и вылазит ошибка которую я написал выше.

При этом созданный спелл работает у игрока исправно. (Даже если любой имеющийся просто скопировать с новым ID - пет его не может использовать)
Сообщение # 4 написано 17.02.2016 в 16:24
p620
Маршал
Опишите алгоритм действий, которые Вы предпринимаете, чтобы создать новую способность и добавить ее питомцу. Желательно на конкретном примере, с НИПом, который доступен в стандарте.
Сообщение # 5 написано 17.02.2016 в 16:47
M@Z@
Рыцарь
Цитата p620 ()
Опишите алгоритм действий, которые Вы предпринимаете, чтобы создать новую способность и добавить ее питомцу. Желательно на конкретном примере, с НИПом, который доступен в стандарте.


А что его описывать? Алгоритм прост: (Дан неиспользуемый пример)

1) Создал спелл призыва питомца к примеру с id 123 (Гнолл 14 лвл если память не изменяет) (если имеется в виду стандартный НИП доступный в игре)
2) Создал новый спелл на основе уже имеющегося сменив id поправив дамаг, иконку, и др данные (пусть будет 59343 с новым айди 90000)
3) Открыл Creature_template нашел строку спеллов добавил спелл1 к примеру 59343 (кровопускание) и спелл2 90000 а так же сменил фракцию на 62
Про заливку дбц в клиент думаю говорить не нужно
4) Перезапустил сервер
5) Вошел в игру , прописал спелл себе, заюзал, появлися НИП 123, которым можно управлять. Вижу 2 спела 59353 и 90000. Нападаю на вражеского НИП. Пет бъет и все такое. Нажимаю "ЛЕВОЙ" кнопкой мыши на способность1
или же 59343 , подконтрольный мне НИП 123 использует данный спелл. Нажимаю этой же кнопкой мыши на способность2 (они обе на панели питомцев имеются) И, ничего не происходит иконка спелла просто обновляется (по часовой стрелке) и НИП не использует этот спел.

Пожалуй всё

тут что ни делай а созданный спелл (будь то копия имеющегося но с новым id или с 0 написанный), он не работает у подконтрольного мне НПС-питомца
Сообщение # 6 отредактировано M@Z@ - Четверг, 18.02.2016, 16:28
p620
Маршал
Цитата M@Z@ ()
др данные
Требуются подробности, какие еще данные Вы правили.
Призыв и способность создавали с нуля или брали какой-то образец? В эффекте призыва какой MiscValueB стоит?
Какие у способности указаны типы целей, флаги, эффекты? Где запись в `CreatureSpellData`?
Сообщение # 7 написано 18.02.2016 в 17:28
M@Z@
Рыцарь
Цитата M@Z@ ()
2) Создал новый спелл на основе уже имеющегося сменив id поправив дамаг, иконку, и др данные (пусть будет 59343 с новым айди 90000)
Цитата p620 ()
Требуются подробности, какие еще данные Вы правили.
За основу бралл спелл аналогичный спеллу 7993
сменил время призыва (колонка 41) существа на 60 минут, сменил название, иконку, % маны, собственно это все, большего не требуется для работы оригинальных спеллов у призываемого НПС
Цитата p620 ()
MiscValueB
 если я правильно понял, это колонки 113-115 значение 67 (114 столбец)
Цитата p620 ()
Какие у способности указаны типы целей, флаги, эффекты? Где запись в `CreatureSpellData`?
CreatureSpellData не трогал

Способность хоть какую бери, ни 1 не работает с новым id. Все те что уже есть в spell.dbc - работают
Сообщение # 8 написано 18.02.2016 в 17:51
p620
Маршал
Цитата M@Z@ ()
CreatureSpellData не трогал

Так вероятно следует потрогать? Добавьте туда запись. ID записи присвойте колонке `PetSpellDataId` в `creature_template` шаблону существа, которого призываете.
Сообщение # 9 написано 18.02.2016 в 18:12
M@Z@
Рыцарь
Цитата p620 ()
Так вероятно следует потрогать? Добавьте туда запись. ID записи присвойте колонке `PetSpellDataId` в `creature_template` шаблону существа, которого призываете.


добавил - 0 реакции от питомца даже со creaturespelldata.dbc
(только что проверено)
Сообщение # 10 написано 18.02.2016 в 18:19
p620
Маршал
Цитата M@Z@ ()
добавил - 0 реакции от питомца даже со creaturespelldata.dbc(только что проверено)
На клиенте копия этой .dbc есть?
Если да - скидывайте конкретный нерабочий пример полностью.
Сообщение # 11 написано 18.02.2016 в 18:29
M@Z@
Рыцарь
Цитата p620 ()
На клиенте копия этой .dbc есть?
ясное дело имеется. Иначе спелл нельзя увидеть, а уж тем более использовать
Цитата p620 ()
Если да - скидывайте конкретный нерабочий пример полностью.
В каком плане скинуть?
spell.dbc+скрипт нпс?
Сообщение # 12 отредактировано M@Z@ - Четверг, 18.02.2016, 18:36
p620
Маршал
Цитата M@Z@ ()
В каком плане скинуть?
spell.dbc+скрипт нпс?

Желательно сделайте копию, в которой будут содержаться только проблемные способности. Насчет существа - да, дамп шаблона.
П.С: По поводу наличия на клиентской стороне - речь шла о `CreatureSpellData`.
Сообщение # 13 отредактировано p620 - Четверг, 18.02.2016, 18:53
M@Z@
Рыцарь
Цитата p620 ()
П.С: По поводу наличия на клиентской стороне - речь шла о `CreatureSpellData`.


Все что правится в dbc поидее должно быть и в клиенте. Само собой что имеется в клиенте и Csd.dbc

Добавлено (18.02.2016, 19:12)
---------------------------------------------

Цитата p620 ()
Желательно сделайте копию, в которой будут содержаться только проблемные способности. Насчет существа - да, дамп шаблона.
Сбросил в личку spell.dbc ; creat.sd.,dbc и скрипт npc+его eventAI
Сообщение # 14 написано 18.02.2016 в 19:12
p620
Маршал
Проблему воспроизвести не удалось. Корректной последовательностью добавления новой способности питомцу будут следующие действия:
- Выбор/создание способности. Запоминание ID.
- Создание новой записи/добавление в существующую данных о способности в `CreatureSpellData.dbc`. Первой колонкой является PetSpellDataId (ссылка на соответствующий столбец `creature_template`), следующие четыре содержат SpellID способностей, которые будут доступны питомцу. Последние четыре - время восстановления каждой из перечисленных ранее способностей. Указывается в формате {секунды * 10}.
- Выбор/создание шаблона НИПа, чей список доступных способностей питомца требуется исправить. В поле `PetSpellDataId` устанавливается значение первой колонки соответствующей записи из `CreatureSpellData.dbc`.
- Добавление исправленных .dbc на клиентскую сторону (подразумевается, что изначально они правятся на серверной стороне, ибо там по умолчанию находятся в открытом формате).
- Перезапуск сервера.
Для проверки работоспособности можно использовать ".npc tame" на экземпляре целевого существа. Следует обратить внимание, что у питомца может оказаться больше четырех способностей. В этом случае добавленная(ые) может(гут) оказаться в "Книге Заклинаний" под закладкой "Питомец".
Сообщение # 15 отредактировано p620 - Четверг, 18.02.2016, 21:08
M@Z@
Рыцарь
Цитата p620 ()
Проблему воспроизвести не удалось. Корректной последовательностью добавления новой способности питомцу будут следующие действия:- Выбор/создание способности. Запоминание ID.- Создание новой записи/добавление в существующую данных о способности в `CreatureSpellData.dbc`. Первой колонкой является PetSpellDataId (ссылка на соответствующий столбец `creature_template`), следующие четыре содержат SpellID способностей, которые будут доступны питомцу. Последние четыре - время восстановления каждой из перечисленных ранее способностей. Указывается в формате {секунды * 10}.- Выбор/создание шаблона НИПа, чей список доступных способностей питомца требуется исправить. В поле `PetSpellDataId` устанавливается значение первой колонки соответствующей записи из `CreatureSpellData.dbc`.- Добавление исправленных .dbc на клиентскую сторону (подразумевается, что изначально они правятся на серверной стороне, ибо там по умолчанию находятся в открытом формате).- Перезапуск сервера.Для проверки работоспособности можно использовать ".npc tame" на экземпляре целевого существа. Следует обратить внимание, что у питомца может оказаться больше четырех способностей. В этом случае добавленная(ые) может(гут) оказаться в "Книге Заклинаний" под закладкой "Питомец".

Попробовать стоит.
Сообщение # 16 написано 19.02.2016 в 05:09
  • Страница 1 из 1
  • 1
Поиск: