|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help Заклинания у питомца (Ошибка при использовании рисованного spell'a) |
Заклинания у питомца |
Дорогие форумчане. Столкнулся с такой проблемой
Создав заклинание вызова питомца. Создал заклинания способностей питомца. При создании NPC в Creature_template в спеллах указал заклинания в общем все работает. NPC использует заклинания в бою (в общем как обычный пет) и их же может нажать игрок, после чего пет работает. НО Вот проблема. Использовать Пет, Созданные мной скиллы, ну увы ни в какую. Заклинание просто обновляется на секунду иль же вообще не работает. (При использовании Event AI все работает исправно, но использовать спелл игрок не может.(описал выше что происходит) а нужно чтобы игрок мог на него клацнуть) Стандартные же спеллы игрок может кликать и они работают, но их копии так же просто обновляются. При этом на некоторых заклинаниях вылазит нехитрая ошибка. (не на всех) Error: unknown PET spell id 29466 Такой спелл не был нигде записан (ни у NPC , ни в Event AI). Его просто не существует даже в spell.dbc, однако почему-то выдает сию ошибку. Вопрос в том, как исправить проблему связаную с обновлением рисованных спеллов у питомца ------------------------------- P.s Имею так же вопрос связанный с призывом существ у питомца. Они почему-то не нападают на врага и смена их фракции ничего не меняет) Надеюсь на вашу помощь |
P.s Имею так же вопрос связанный с призывом существ у питомца. Они почему-то не нападают на врага и смена их фракции ничего не меняет) Например у огненного элементаля шамана, нападение задается в его скрипте (файл 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); } }; Аналогичным образом описываются например гаргулья и ТРО. |
SamuraiJack, это потому делается, что для существа переопределяется AI. В стандартном (данном) случае все уже прописано.
ТС, Вы свою проблему понятнее описать можете? В частности, что вот это значит? --- Умение вводить людей в заблуждение - весьма полезный навык, я понимаю, но уверены ли Вы, что тема с призывом о помощи является уместным для него испытательным полигоном?..
Сообщение # 3 написано 16.02.2016 в 19:09
|
Если я правильно понял ваш вопрос и речь идет о питомцах, которыми игрок не управляет, то их действия могут описываться в CreatureScript.Например у огненного элементаля шамана, нападение задается в его скрипте (файл pet_shaman.cpp): Я имел в виду аналог призыва петомца охотника, но с иными спеллами , которые он может использовать (И КОТОРЫЕ может нажимать игрок, чтобы его петомец мог их использовать) Аналогом данного спелла является: spell id 7993 который призывает древня "НЕ" обладающего заклинаниями. И вот если ему прописать спелл призыва (даже через EventAI, призываемые уже ИМ существа, не нападают на вражеских NPC Однако если же просто заспаунить NPC (без заклинания), то подконтрольные ему существа нападают на врага. Это созданные мной спеллы в spell.dbc которые приписаны к петомцу, и он по идее должен их использовать при нажатии игроком на соответствующую иконку в панели питомцев. Работает сам НПС, и заклинание призыва этого НПС вот что я имел в виду, но лишь те которые уже есть в spell.dbc. (Как EventAI так и с панели петомцев) Нажать на заклинание в меню петомцев, которое прописано призываемому NPC, игрок не может или может, но оно не работает (обновляется иконка) Уже имеющиеся скиллы(они же спеллы(заклинания\способности)) из Spell.dbc пет использовать МОЖЕТ и икрок их МОЖЕТ нажать. (соответственно пет реагирует и использует их) НО если создаешь новый спелл (он же скилл(способность)) то пет его не может использовать. Иконка на панели петомцев просто обновляется и всё. Собственно и вылазит ошибка которую я написал выше. При этом созданный спелл работает у игрока исправно. (Даже если любой имеющийся просто скопировать с новым ID - пет его не может использовать)
Сообщение # 4 написано 17.02.2016 в 16:24
|
Опишите алгоритм действий, которые Вы предпринимаете, чтобы создать новую способность и добавить ее питомцу. Желательно на конкретном примере, с НИПом, который доступен в стандарте. А что его описывать? Алгоритм прост: (Дан неиспользуемый пример) 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 написанный), он не работает у подконтрольного мне НПС-питомца |
Сообщение # 7 написано 18.02.2016 в 17:28
|
2) Создал новый спелл на основе уже имеющегося сменив id поправив дамаг, иконку, и др данные (пусть будет 59343 с новым айди 90000) сменил время призыва (колонка 41) существа на 60 минут, сменил название, иконку, % маны, собственно это все, большего не требуется для работы оригинальных спеллов у призываемого НПС если я правильно понял, это колонки 113-115 значение 67 (114 столбец) Какие у способности указаны типы целей, флаги, эффекты? Где запись в `CreatureSpellData`? Способность хоть какую бери, ни 1 не работает с новым id. Все те что уже есть в spell.dbc - работают
Сообщение # 8 написано 18.02.2016 в 17:51
|
Сообщение # 10 написано 18.02.2016 в 18:19
|
Все что правится в dbc поидее должно быть и в клиенте. Само собой что имеется в клиенте и Csd.dbc Добавлено (18.02.2016, 19:12)
Сообщение # 14 написано 18.02.2016 в 19:12
|
Проблему воспроизвести не удалось. Корректной последовательностью добавления новой способности питомцу будут следующие действия:
- Выбор/создание способности. Запоминание ID. - Создание новой записи/добавление в существующую данных о способности в `CreatureSpellData.dbc`. Первой колонкой является PetSpellDataId (ссылка на соответствующий столбец `creature_template`), следующие четыре содержат SpellID способностей, которые будут доступны питомцу. Последние четыре - время восстановления каждой из перечисленных ранее способностей. Указывается в формате {секунды * 10}. - Выбор/создание шаблона НИПа, чей список доступных способностей питомца требуется исправить. В поле `PetSpellDataId` устанавливается значение первой колонки соответствующей записи из `CreatureSpellData.dbc`. - Добавление исправленных .dbc на клиентскую сторону (подразумевается, что изначально они правятся на серверной стороне, ибо там по умолчанию находятся в открытом формате). - Перезапуск сервера. Для проверки работоспособности можно использовать ".npc tame" на экземпляре целевого существа. Следует обратить внимание, что у питомца может оказаться больше четырех способностей. В этом случае добавленная(ые) может(гут) оказаться в "Книге Заклинаний" под закладкой "Питомец". |
Проблему воспроизвести не удалось. Корректной последовательностью добавления новой способности питомцу будут следующие действия:- Выбор/создание способности. Запоминание ID.- Создание новой записи/добавление в существующую данных о способности в `CreatureSpellData.dbc`. Первой колонкой является PetSpellDataId (ссылка на соответствующий столбец `creature_template`), следующие четыре содержат SpellID способностей, которые будут доступны питомцу. Последние четыре - время восстановления каждой из перечисленных ранее способностей. Указывается в формате {секунды * 10}.- Выбор/создание шаблона НИПа, чей список доступных способностей питомца требуется исправить. В поле `PetSpellDataId` устанавливается значение первой колонки соответствующей записи из `CreatureSpellData.dbc`.- Добавление исправленных .dbc на клиентскую сторону (подразумевается, что изначально они правятся на серверной стороне, ибо там по умолчанию находятся в открытом формате).- Перезапуск сервера.Для проверки работоспособности можно использовать ".npc tame" на экземпляре целевого существа. Следует обратить внимание, что у питомца может оказаться больше четырех способностей. В этом случае добавленная(ые) может(гут) оказаться в "Книге Заклинаний" под закладкой "Питомец". Попробовать стоит.
Сообщение # 16 написано 19.02.2016 в 05:09
|
| |||
| |||