Замена NPC: создаем убиваемое существо
Создаём прохожих или других живых существ, которых можно убить В CS:Source нет NPC, они здесь абсолютно не нужны, но, если вдруг возникла необходимость добавить на карту что-то отдалённо напоминающее NPC, то это возможно. Можно создать прохожих на улице, людей на станции, ожидающих поезда, всяких монстров (страйдера, например). Вот как на этом видео:
В общем-то, в статье про создание птицы есть похожий префаб, только там не прохожие, а птица. Здесь абсолютно аналогично. Кроме того, к уроку приложен префаб, так что можно всё изучить.
Модель с анимацией ходьбы или стояния делается невероятно просто — ставится prop_dynamic и задаётся параметр DefaultAnimation (какая анимация подходит, можно узнать в браузере моделей). Дальше нам нужно сделать модель убиваемой.
Внутри первой модели создаём ещё одну (чтобы модели получились друг в друге) — prop_ragdoll, с такой же моделью, даём имя ragdoll и ставим флаг Debris затем внутри модели ставим точечную энтити phys_constraint, пишем имя — phys, Entity 1 — ragdoll и флажок — No Collizion until break. Возвращаемся к первой модели (prop_dynamic) и добавляем такие оутпуты:
OnHealthChanged — !self — Kill
OnHealthChanged — ragdoll — Enable
OnHealthChanged — phys — Break
Ещё нам нужен logic_auto с оутпутом: OnMapSpawn — ragdoll — Disable. Некоторых оутпутов нет в выпадающем списке, их нужно вводить вручную.
Готово. Когда по модели выстрелят, она «превратится» в ragdoll-объект и свалится, как труп. Щагающего прохожего сделать просто, prop_dynamic и phys_constraint нужно привязать к двигающемуся объекту, думаю, вы справитесь. Но если вдруг возникнут проблемы — то СКАЧИВАЕМ ПРЕФАБ
В префабе: 2 человека, стоящих на одном месте, и 2 ходят по кругу. На карту добавлены logic_collision_pair, чтобы prop_ragdoll’ы не создавали пыль вокруг себя из-за того, что постоянно находятся внутри другой модели (что недопустимо), logic_collision_pair отключает модель столкновений. Правда звук, показывающий, что столкновения происходят, к сожалению, остался.
Автор: Лорд Беккет Понравилось: 9 Не понравилось: 0
Creathion Kit — Скрипт атаки
Здравствуйте, как можно настроить NPC таким образом, чтобы когда ты попал в его поле зрение, он подошёл к тебе, завёл диалог и после него атаковал тебя?
- Страниц
- 1
- 2
- Авторизуйтесь для ответа в теме
#2 Potatoider
Отправлено 14 марта 2016 — 09:00
#3 Kogir
Отправлено 14 марта 2016 — 11:26
Извини, я немного не понял, а куда StartCombat(game.getplayer()) вставлять нужно? Если в «End Papyrus fragment», то скрипт выдаёт ошибку и отказывается работать.
P.S. А как можно заставить группу НПС напасть на тебя, после проведения диалоги с одним?
Сообщение отредактировал Kogir: 14 марта 2016 — 11:55
#4 Potatoider
Отправлено 14 марта 2016 — 12:26
Извини, я немного не понял, а куда StartCombat(game.getplayer()) вставлять нужно? Если в «End Papyrus fragment», то скрипт выдаёт ошибку и отказывается работать.
P.S. А как можно заставить группу НПС напасть на тебя, после проведения диалоги с одним?
#5 Kogir
Отправлено 14 марта 2016 — 12:53
По поводу скрипта позже отвечу. Группа может напасть если их в какуюто фракцию объеденить к примеру и сделать игроку фракцию, враждебную первой. Тогда при добавлении игрока в нее по идее сработает агро.
Я со скриптом уже разобрался) его просто можно скопировать в недрах «Старого орка». Но нужно же будет игрока потом удалять из этой фракции? Может есть более скриптовый метод? Кстати, позволю пока себе задать тут ещё вопрос. Как можно перевести во время какого-нибудь квеста местность в другую фазу? То есть, чтобы нпс оригинальные пропали оттуда, а на время квеста я бы заселил их новыми.
#6 Potatoider
Отправлено 14 марта 2016 — 13:11
Там по папирусу есть раздел со всеми командами. Вообще для перемещений неписей к примеру их можно задизэблить disable(), чтоб потом enable(), ну или moveto() — тут еще пара видов есть и эт лучше посмотреть на вики все прелести работы с командой.
С фракциями идентично. Можно добавлять их и убирать. А точные команды сходу не вспомню. Поищите что-то вроде add(to)faction remove(from)faction
#7 Kogir
Отправлено 15 марта 2016 — 09:17
Там по папирусу есть раздел со всеми командами. Вообще для перемещений неписей к примеру их можно задизэблить disable(), чтоб потом enable(), ну или moveto() — тут еще пара видов есть и эт лучше посмотреть на вики все прелести работы с командой.
С фракциями идентично. Можно добавлять их и убирать. А точные команды сходу не вспомню. Поищите что-то вроде add(to)faction remove(from)faction
Интересно, надо будет поискать ещё, как это сделать. А что можешь ответить на ещё один вопрос? Как сделать рандомную внешность НПС, с заданными параметрами?
#8 Potatoider
Отправлено 15 марта 2016 — 09:56
Интересно, надо будет поискать ещё, как это сделать. А что можешь ответить на ещё один вопрос? Как сделать рандомную внешность НПС, с заданными параметрами?
Пресеты есть. Примерно штук по 10 на расу. Можно и свои конечно же. Так-то получается что внешность не совсем рандомная. Ее сперва нужно создать.
#9 Kogir
Отправлено 15 марта 2016 — 10:22
Пресеты есть. Примерно штук по 10 на расу. Можно и свои конечно же. Так-то получается что внешность не совсем рандомная. Ее сперва нужно создать.
А если я не ошибаюсь, пресеты как-то в каком-то Racemenu делаются? А как их потом для НПЦ вставлять, чтобы у них она в игре рандомно генерилась?
#10 Potatoider
Отправлено 15 марта 2016 — 10:30
У меня пока небыло необходимости с ними вплотную работать. Вероятно преметы неписей потом заносятся как лвльные актеры.
#11 Kogir
Отправлено 15 марта 2016 — 10:44
У меня пока небыло необходимости с ними вплотную работать. Вероятно преметы неписей потом заносятся как лвльные актеры.
Лвльные актёры, этот как бы точки спавна нпс с определёнными значениями, которым ты можешь присваивать, так скажем определённые условия внешности? В данном случае пресеты? Я просто пока с ними не работал и использовал только поставленных в мире нпс
#12 Kogir
Отправлено 15 марта 2016 — 10:55
Я кстати тут подумал, и родил теорию, пока не опробовал, но я кажется понял, как сделать так, чтобы группа нпс на тебя напала)
Нужно сделать с главным нпс их «Нанимателем и наёмником» и поставить в их характеристиках «помогать союзникам», в итоге при срабатывании скрипта в диалоге, они все вместе нападут)
Но пока это лишь теория)
#13 werr
Отправлено 15 марта 2016 — 16:36
А если я не ошибаюсь, пресеты как-то в каком-то Racemenu делаются? А как их потом для НПЦ вставлять, чтобы у них она в игре рандомно генерилась?
Ошибаешься. Racemenu – это мод. Пресеты же делаются в редакторе.
- «Пресеты» это обычные НПС, вручную созданные (тобой в данном случае). Каждому лепишь желаемую внешность. Что до одежды, то можешь сделать свой outfit, закинуть в него броню из левел листа (левел лист опять же можно свой создать, если ванильные не устраивают).
- Profit. теперь можно расставлять свежесозданного актера, и их внешность (а также характеристики) будет браться из забитых пресетов.
Я кстати тут подумал, и родил теорию, пока не опробовал, но я кажется понял, как сделать так, чтобы группа нпс на тебя напала)
Нужно сделать с главным нпс их «Нанимателем и наёмником» и поставить в их характеристиках «помогать союзникам», в итоге при срабатывании скрипта в диалоге, они все вместе нападут)
Но пока это лишь теория)
Димонойдер тебе все правильно сказал. скриптом добавить игроку фракцию, которая будет враждебно настроена фракции НПС. Или добавить каждому НПС из группы, фракцию, враждебную PlayerFaction. Как поступить – зависит от конкретной ситуации. Как удобней реализовать, так и надо.
Если же сделать так, как ты сейчас описал, то получится следующее. НПС, которому скриптом будет добавлена враждебная фракция, нападает на игрока; пока игрок не даст сдачи, остальные НПС будут разбегаться в страхе с воплями «Там драка». И лишь когда игрок тоже начнет бить в ответ нападающего, остальные резко достанут оружие и, крича «Сейчас ты сдохнешь», ринутся на тебя. Со стороны такое поведение выглядит, мягко говоря, неубедительно.
- ferretcha это нравится
A Random Dude’s Story
#14 Kogir
Отправлено 15 марта 2016 — 16:57
«Если же сделать так, как ты сейчас описал, то получится следующее. НПС, которому скриптом будет добавлена враждебная фракция, нападает на игрока; пока игрок не даст сдачи, остальные НПС будут разбегаться в страхе с воплями «Там драка». И лишь когда игрок тоже начнет бить в ответ нападающего, остальные резко достанут оружие и, крича «Сейчас ты сдохнешь», ринутся на тебя. Со стороны такое поведение выглядит, мягко говоря, неубедительно.»
Нет, вся идея в том, что я не дам НПС враждебную мне фракцию, я просто заставлю его на меня напасть после диалога, а раз он нападёт, а рядом стоящие «компаньоны», которые имеют статус помощи всем союзникам, сразу же должны помочь, но это пока только теория.
#15 werr
Отправлено 15 марта 2016 — 17:19
Нет, вся идея в том, что я не дам НПС враждебную мне фракцию, я просто заставлю его на меня напасть после диалога, а раз он нападёт, а рядом стоящие «компаньоны», которые имеют статус помощи всем союзникам, сразу же должны помочь, но это пока только теория.
Тогда так и получится, как я описал. Дело не в том, фракцию ты одному НПС добавишь или через StartCombat() заставишь его, – дело в том, что в этих случаях (когда ты над одним НПС махинации проводишь), остальным потребуется еще какое-то время (вплоть до десяти секунд), чтобы осознать, что произошло. Во избежания такой задержки лучше добавлять фракции сразу всем (или скрипт кидать на всех).
Даже если у тебя предложенная тобой задумка сработает успешно, то не факт что на других машинах это сработает так же «плавно». Поэтому лучше смотреть на все с позиции игры. Если ты всем сразу задашь это действие, то все одновременно его выполнят. И при каждом прогоне будут выполнять его синхронно.
П,С, я сейчас не в лучшей кондиции мысли излагать доступно, но, думаю, понять можно. Я понял.
- ferretcha это нравится
A Random Dude’s Story
Спровоцировать нападение.
На самом деле,агрессивность Непися зависит от твоей абилки чарминга.Чем выше-тем меньше вероятность,если конечно,нападение не заскриптовано.
Так что. Чем ты уродливее,тем быстрее на тебя нападут.
И еще.Бывает что неписи не нападают,так как ты сильнее их.По парам.
#3 Carlgauss
А еще НПС гораздо охотнее нападет, если его отношение к тебе в районе 100. Звучит бредово, правда, но если отношение в районе 0, то он просто говорит «Отвали» и все. Так что, даем ему туеву хучу денег, а потом злим, а потом убиваем, а деньги забираем
#4 Artem13
#5 Sweetheart
Чего-то вас не в ту сторону.
Привлекательность(Personality) перса тут ни при чем, она по-моему влияет только на начальное отношение. Важен навык красноречия(Speechcraft), чем он выше, тем проще управлять людьми(и прочими тварями . Управлять, т.е. воздействовать можно по-разному: льстить, оскорблять, угрожать, подкупать, — после каждого действия выдается ответ — удача(Bribe success) или провал(Taunt Fail).
Так вот, чтобы на вас напали, нужно несколько раз УДАЧНО оскорбить, задеть за живое, так сказать Обычный имперский стражник, напр., нападает после трех острот. Максимум, что мне встречалось — шесть или семь раз.
Причем только так — оскорбляем, расположение падает НЕ до 0, подкупаем до 90-100(это не влияет на нужное для нападения количество обид) и опять оскорбляем. Если расположение падает до 0, десяткой-другой золота не отделаешься, стабильно посылают, и не оскорбляются.
#6 Artem13
#7 Sweetheart
Может от неписи тоже зависит. Я ради эксперимента вчера помучал стража порядка и справедливости, спец. опустил отношение до 0 и начал оскорблять. в итоге сам замучался.(level 45-50, Personality 100, Speechcraft 70-80)
Как сделать чтобы нпс атаковал игроков
Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Страница 1 из 2 | 1 | 2 | > |
Извините, если эту тему уже создавали (в таком случае дайте мне ссылку на нее)
Как мне сделать так чтобы юниты атаковали группу игроков?
учимся нормально называть темы.
переименовано из "Можете помочь?"