|
|
Модератор форума: Dimitro |
Форум TrinityCore [TrinityCore] Help SmartAI + Комбат игрока |
SmartAI + Комбат игрока |
Вечер Добрый. Делаю интересный эвент и для эвента мне нужен NPС, который выполняет вот такие действия:
1.Если игрок на определенном расстоянии вступает в бой, на него вешается аура 2.После ауры его должны телепортировать в указанное место. Много вариантов испробывала, но ничего не работает, возможно кто знает как реализовать или в чем моя ошибка Мой Код
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 1 написано 22.11.2015 в 18:37
|
Ним дружелюбеп, и сам нип не должен атаковать игрока,а только использовать скрипт на игрока, который вошел в бой.
По данному скрипту ничего не работает, на игрока не вешается аура и его не телепортирует
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
|
По данному скрипту ничего не работает, на игрока не вешается аура и его не телепортирует Удаляю идиотский совет. Посмотрел ядро, в нем есть следующее: Код if (!me || !me->IsInCombat()) return; Из чего следует, что целевой НИП, в которого льется сценарий, должен быть в бою, иначе условие вернет true, произойдет return, и следующие инструкции не выполнятся. |
Из чего следует, что целевой НИП, в которого льется сценарий, должен быть в бою, иначе условие вернет true, произойдет return, и следующие инструкции не выполнятся. Значит мне нужно выставить фракцию, чтоб игрок моб был против 2 фракций, но не атаковал без поповода или как, совсем запуталась
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 5 написано 24.11.2015 в 07:16
|
Значит мне нужно выставить фракцию, чтоб игрок моб был против 2 фракций, но не атаковал без поповода или как, совсем запуталась В зависимости от того, что еще должен делать целевой НИП. Вы можете попробовать поставить ему статично unit_flags | 0x80000 и не менять ему фракцию вообще. Это может сработать, но не гарантируется, что он не слетит при Reset()'ах. Пробуйте.
Сообщение # 6 написано 24.11.2015 в 12:59
|
Получается так, что я хочу сделать чтоб определенном месте игрок входя в бой, получал ауру от этого НПС'а, а после ауры его телепортировали в другое место. Сейчас главное как-то сделать чтоб на игрока вешалась аура входя в бой, а с телепортацией проблем не будет. Поставила НПС'у юнит флаг 80000, атаковала моба и ничего не изменилось, а может быть проблема в том что я атакую моба, а не игрока?
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
|
Сам НИП, который контролирует сценарий, выполняет еще какие-то действия? Или он всегда просто стоит после загрузки сервера? Если выполняет - опишите, какие.
Проблемы в том, что Вы атакуете другого НИПа, а не игрока, быть не может. Скажите на всякий случай, есть ли у Вас доступ к исходникам на случай, если через базу реализовать не удастся?
Сообщение # 8 написано 25.11.2015 в 19:45
|
Сам НИП, который контролирует сценарий, выполняет еще какие-то действия? Или он всегда просто стоит после загрузки сервера? Если выполняет - опишите, какие.Проблемы в том, что Вы атакуете другого НИПа, а не игрока, быть не может. Скажите на всякий случай, есть ли у Вас доступ к исходникам на случай, если через базу реализовать не удастся? Он всегда тоит после загрузки сервера, а все его действия это вешать ауру на игрока в комбате и телепортировать с зоны где он вступил в бой. Да есть доступ к исходникам
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 9 написано 26.11.2015 в 09:52
|
Он всегда тоит после загрузки сервера, а все его действия это вешать ауру на игрока в комбате и телепортировать с зоны где он вступил в бой. Значит Reset()'а при загрузке достаточно... В общем, наплюйте на SmartAI. Чисто сервер-сайдового способа реализации через базу, без затрагивания .dbc, я сейчас придумать не могу. Воспользуйтесь ядром: http://pastebin.com/c1zkzvzF Надеюсь, как регистрировать такие сценарии, знаете. Также замените везде NAME на название по своему выбору. Название объекта и его конструктора обязаны совпадать, но название дочерних элементов - нет, так что можете выбрать разные имена, относящиеся к class и struct, однако общепринято, чтобы они отражали функцию, которую данные объекты призваны выполнять. P.S: Писал в спешке, возможно где-то косяк, хотя маловероятно. Проверьте, если что-то будет - пишите, вернусь - посмотрю. |
Вечер Добрый. Делаю интересный эвент и для эвента мне нужен NPС, который выполняет вот такие действия: 1.Если игрок на определенном расстоянии вступает в бой, на него вешается аура 2.После ауры его должны телепортировать в указанное место. Ну попробуйте вот так *Измените Все под себя (Ид зАклинания Свой, место ид моба свой ид моба он должен быть дружественным для обоих фракиций) Код DELETE FROM `smart_scripts` WHERE (`entryorguid`=ид моба AND `source_type`=0); INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES (ид моба, 0, 1, 2, 15, 0, 100, 0, 100, 3000, 3000, 0, 11, Ид спела, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'SmartAI'), (ид моба, 0, 2, 0, 15, 0, 100, 0, 100, 3000, 3000, 0, 62, ид карты, 0, 0, 0, 0, 0, 2, 8, 0, 0, Координата X, Координата Y, Координата Z, Ориентация, 'SmartAI'); Добавлено (16.12.2015, 20:09) |
| |||
| |||