• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
SmartAI + Комбат игрока
Low
Центурион
Вечер Добрый. Делаю интересный эвент и для эвента мне нужен NPС, который выполняет вот такие действия:
1.Если игрок на определенном расстоянии вступает в бой, на него вешается аура
2.После ауры его должны телепортировать в указанное место.

Много вариантов испробывала, но ничего не работает, возможно кто знает как реализовать или в чем моя ошибка

Мой Код
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 1 написано 22.11.2015 в 18:37
p620
Маршал
Добрый вечер.

НИП, в которого Вы льете этот сценарий, враждебен по отношению к игроку или нет?
Кроме того, Вы не упомянули саму проблему. Сценарий не проигрывается вообще, или что-то конкретное не работает?
Сообщение # 2 написано 22.11.2015 в 22:50
Low
Центурион
Ним дружелюбеп, и сам нип не должен атаковать игрока,а только использовать скрипт на игрока, который вошел в бой.

По данному скрипту ничего не работает, на игрока не вешается аура и его не телепортирует
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 3 отредактировано Low - Понедельник, 23.11.2015, 11:19
p620
Маршал
Цитата Low ()
По данному скрипту ничего не работает, на игрока не вешается аура и его не телепортирует

Удаляю идиотский совет.

Посмотрел ядро, в нем есть следующее:
Код
if (!me || !me->IsInCombat())
                return;

Из чего следует, что целевой НИП, в которого льется сценарий, должен быть в бою, иначе условие вернет true, произойдет return, и следующие инструкции не выполнятся.
Сообщение # 4 отредактировано p620 - Понедельник, 23.11.2015, 12:55
Low
Центурион
Цитата p620 ()
Из чего следует, что целевой НИП, в которого льется сценарий, должен быть в бою, иначе условие вернет true, произойдет return, и следующие инструкции не выполнятся.

Значит мне нужно выставить фракцию, чтоб игрок моб был против 2 фракций, но не атаковал без поповода или как, совсем запуталась sad
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 5 написано 24.11.2015 в 07:16
p620
Маршал
Цитата Low ()
Значит мне нужно выставить фракцию, чтоб игрок моб был против 2 фракций, но не атаковал без поповода или как, совсем запуталась

В зависимости от того, что еще должен делать целевой НИП. Вы можете попробовать поставить ему статично unit_flags | 0x80000 и не менять ему фракцию вообще. Это может сработать, но не гарантируется, что он не слетит при Reset()'ах. Пробуйте.
Сообщение # 6 написано 24.11.2015 в 12:59
Low
Центурион
Цитата p620 ()
В зависимости от того, что еще должен делать целевой НИП

Получается так, что я хочу сделать чтоб определенном месте игрок входя в бой, получал ауру от этого НПС'а,  а после ауры его телепортировали в другое место.

Сейчас главное как-то сделать чтоб на игрока вешалась аура входя в бой, а с телепортацией проблем не будет.

Поставила НПС'у юнит флаг 80000, атаковала моба и ничего не изменилось, а может быть проблема в том что я атакую моба, а не игрока?
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 7 отредактировано Low - Среда, 25.11.2015, 18:40
p620
Маршал
Сам НИП, который контролирует сценарий, выполняет еще какие-то действия? Или он всегда просто стоит после загрузки сервера? Если выполняет - опишите, какие.
Проблемы в том, что Вы атакуете другого НИПа, а не игрока, быть не может.

Скажите на всякий случай, есть ли у Вас доступ к исходникам на случай, если через базу реализовать не удастся?
Сообщение # 8 написано 25.11.2015 в 19:45
Low
Центурион
Цитата p620 ()
Сам НИП, который контролирует сценарий, выполняет еще какие-то действия? Или он всегда просто стоит после загрузки сервера? Если выполняет - опишите, какие.Проблемы в том, что Вы атакуете другого НИПа, а не игрока, быть не может.

Скажите на всякий случай, есть ли у Вас доступ к исходникам на случай, если через базу реализовать не удастся?

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

Да есть доступ к исходникам
Рисовщица, выполняю любые заказы, босы, итемы, квесты, вендоры, кастомные нпс, ворлд ивенты (платно)
Сообщение # 9 написано 26.11.2015 в 09:52
p620
Маршал
Цитата Low ()
Он всегда тоит после загрузки сервера, а все его действия это вешать ауру на игрока в комбате и телепортировать с зоны где он вступил в бой.

Значит Reset()'а при загрузке достаточно...

В общем, наплюйте на SmartAI. Чисто сервер-сайдового способа реализации через базу, без затрагивания .dbc, я сейчас придумать не могу. Воспользуйтесь ядром:
http://pastebin.com/c1zkzvzF
Надеюсь, как регистрировать такие сценарии, знаете. Также замените везде NAME на название по своему выбору. Название объекта и его конструктора обязаны совпадать, но название дочерних элементов - нет,
так что можете выбрать разные имена, относящиеся к class и struct, однако общепринято, чтобы они отражали функцию, которую данные объекты призваны выполнять.

P.S: Писал в спешке, возможно где-то косяк, хотя маловероятно. Проверьте, если что-то будет - пишите, вернусь - посмотрю.
Сообщение # 10 отредактировано p620 - Четверг, 26.11.2015, 15:28
I_Love_Sql
Скаут
Цитата Low ()
Вечер Добрый. Делаю интересный эвент и для эвента мне нужен 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)
---------------------------------------------
И да может вы забыли поставить мобу в AIname скриптовку "SmartAI"

Сообщение # 11 отредактировано I_Love_Sql - Среда, 16.12.2015, 20:06
  • Страница 1 из 1
  • 1
Поиск: