Kogir Опубликовано 14 марта, 2016 Опубликовано 14 марта, 2016 Здравствуйте, как можно настроить NPC таким образом, чтобы когда ты попал в его поле зрение, он подошёл к тебе, завёл диалог и после него атаковал тебя?
Kogir Опубликовано 14 марта, 2016 Автор Опубликовано 14 марта, 2016 (изменено) 14.03.2016 08:00:33, Dimonoider сказал(-а): Тут. Извини, я немного не понял, а куда StartCombat(game.getplayer()) вставлять нужно? Если в "End Papyrus fragment", то скрипт выдаёт ошибку и отказывается работать. P.S. А как можно заставить группу НПС напасть на тебя, после проведения диалоги с одним? Изменено 14 марта, 2016 пользователем Kogir
Potatoider Опубликовано 14 марта, 2016 Опубликовано 14 марта, 2016 14.03.2016 10:26:02, Kogir сказал(-а): Извини, я немного не понял, а куда StartCombat(game.getplayer()) вставлять нужно? Если в "End Papyrus fragment", то скрипт выдаёт ошибку и отказывается работать. P.S. А как можно заставить группу НПС напасть на тебя, после проведения диалоги с одним? По поводу скрипта позже отвечу. Группа может напасть если их в какуюто фракцию объеденить к примеру и сделать игроку фракцию, враждебную первой. Тогда при добавлении игрока в нее по идее сработает агро.
Kogir Опубликовано 14 марта, 2016 Автор Опубликовано 14 марта, 2016 14.03.2016 11:26:39, Dimonoider сказал(-а): По поводу скрипта позже отвечу. Группа может напасть если их в какуюто фракцию объеденить к примеру и сделать игроку фракцию, враждебную первой. Тогда при добавлении игрока в нее по идее сработает агро. Я со скриптом уже разобрался) его просто можно скопировать в недрах "Старого орка". Но нужно же будет игрока потом удалять из этой фракции? Может есть более скриптовый метод? Кстати, позволю пока себе задать тут ещё вопрос. Как можно перевести во время какого-нибудь квеста местность в другую фазу? То есть, чтобы нпс оригинальные пропали оттуда, а на время квеста я бы заселил их новыми.
Potatoider Опубликовано 14 марта, 2016 Опубликовано 14 марта, 2016 14.03.2016 11:53:39, Kogir сказал(-а): Creationkit.com Там по папирусу есть раздел со всеми командами. Вообще для перемещений неписей к примеру их можно задизэблить disable(), чтоб потом enable(), ну или moveto() - тут еще пара видов есть и эт лучше посмотреть на вики все прелести работы с командой. С фракциями идентично. Можно добавлять их и убирать. А точные команды сходу не вспомню. Поищите что-то вроде add(to)faction remove(from)faction
Kogir Опубликовано 15 марта, 2016 Автор Опубликовано 15 марта, 2016 14.03.2016 12:11:19, Dimonoider сказал(-а): Creationkit.com Там по папирусу есть раздел со всеми командами. Вообще для перемещений неписей к примеру их можно задизэблить disable(), чтоб потом enable(), ну или moveto() - тут еще пара видов есть и эт лучше посмотреть на вики все прелести работы с командой. С фракциями идентично. Можно добавлять их и убирать. А точные команды сходу не вспомню. Поищите что-то вроде add(to)faction remove(from)faction Интересно, надо будет поискать ещё, как это сделать. А что можешь ответить на ещё один вопрос? Как сделать рандомную внешность НПС, с заданными параметрами?
Potatoider Опубликовано 15 марта, 2016 Опубликовано 15 марта, 2016 15.03.2016 08:17:00, Kogir сказал(-а): Интересно, надо будет поискать ещё, как это сделать. А что можешь ответить на ещё один вопрос? Как сделать рандомную внешность НПС, с заданными параметрами? Пресеты есть. Примерно штук по 10 на расу. Можно и свои конечно же. Так-то получается что внешность не совсем рандомная. Ее сперва нужно создать.
Kogir Опубликовано 15 марта, 2016 Автор Опубликовано 15 марта, 2016 15.03.2016 08:56:19, Dimonoider сказал(-а): Пресеты есть. Примерно штук по 10 на расу. Можно и свои конечно же. Так-то получается что внешность не совсем рандомная. Ее сперва нужно создать. А если я не ошибаюсь, пресеты как-то в каком-то Racemenu делаются? А как их потом для НПЦ вставлять, чтобы у них она в игре рандомно генерилась?
Potatoider Опубликовано 15 марта, 2016 Опубликовано 15 марта, 2016 15.03.2016 09:22:30, Kogir сказал(-а): У меня пока небыло необходимости с ними вплотную работать. Вероятно преметы неписей потом заносятся как лвльные актеры.
Kogir Опубликовано 15 марта, 2016 Автор Опубликовано 15 марта, 2016 15.03.2016 09:30:39, Dimonoider сказал(-а): У меня пока небыло необходимости с ними вплотную работать. Вероятно преметы неписей потом заносятся как лвльные актеры. Лвльные актёры, этот как бы точки спавна нпс с определёнными значениями, которым ты можешь присваивать, так скажем определённые условия внешности? В данном случае пресеты? Я просто пока с ними не работал и использовал только поставленных в мире нпс
Kogir Опубликовано 15 марта, 2016 Автор Опубликовано 15 марта, 2016 Я кстати тут подумал, и родил теорию, пока не опробовал, но я кажется понял, как сделать так, чтобы группа нпс на тебя напала) Нужно сделать с главным нпс их "Нанимателем и наёмником" и поставить в их характеристиках "помогать союзникам", в итоге при срабатывании скрипта в диалоге, они все вместе нападут) Но пока это лишь теория)
werr Опубликовано 15 марта, 2016 Опубликовано 15 марта, 2016 15.03.2016 09:22:30, Kogir сказал(-а): А если я не ошибаюсь, пресеты как-то в каком-то Racemenu делаются? А как их потом для НПЦ вставлять, чтобы у них она в игре рандомно генерилась? Ошибаешься. Racemenu – это мод. Пресеты же делаются в редакторе. "Пресеты" это обычные НПС, вручную созданные (тобой в данном случае). Каждому лепишь желаемую внешность. Что до одежды, то можешь сделать свой outfit, закинуть в него броню из левел листа (левел лист опять же можно свой создать, если ванильные не устраивают). Спойлер Идешь в раздел LeveledCharacter и создаешь там запись: Спойлер Возвращаешься в раздел Actor и создаешь нового НПС с темплейтом созданного на предыдущем шаге LeveledCharacter Спойлер Profit. теперь можно расставлять свежесозданного актера, и их внешность (а также характеристики) будет браться из забитых пресетов. 15.03.2016 09:55:36, Kogir сказал(-а): Я кстати тут подумал, и родил теорию, пока не опробовал, но я кажется понял, как сделать так, чтобы группа нпс на тебя напала) Нужно сделать с главным нпс их "Нанимателем и наёмником" и поставить в их характеристиках "помогать союзникам", в итоге при срабатывании скрипта в диалоге, они все вместе нападут) Но пока это лишь теория) Димонойдер тебе все правильно сказал. скриптом добавить игроку фракцию, которая будет враждебно настроена фракции НПС. Или добавить каждому НПС из группы, фракцию, враждебную PlayerFaction. Как поступить – зависит от конкретной ситуации. Как удобней реализовать, так и надо. Если же сделать так, как ты сейчас описал, то получится следующее. НПС, которому скриптом будет добавлена враждебная фракция, нападает на игрока; пока игрок не даст сдачи, остальные НПС будут разбегаться в страхе с воплями "Там драка". И лишь когда игрок тоже начнет бить в ответ нападающего, остальные резко достанут оружие и, крича "Сейчас ты сдохнешь", ринутся на тебя. Со стороны такое поведение выглядит, мягко говоря, неубедительно. 1 A Random Dude's Story
Kogir Опубликовано 15 марта, 2016 Автор Опубликовано 15 марта, 2016 "Если же сделать так, как ты сейчас описал, то получится следующее. НПС, которому скриптом будет добавлена враждебная фракция, нападает на игрока; пока игрок не даст сдачи, остальные НПС будут разбегаться в страхе с воплями "Там драка". И лишь когда игрок тоже начнет бить в ответ нападающего, остальные резко достанут оружие и, крича "Сейчас ты сдохнешь", ринутся на тебя. Со стороны такое поведение выглядит, мягко говоря, неубедительно." Нет, вся идея в том, что я не дам НПС враждебную мне фракцию, я просто заставлю его на меня напасть после диалога, а раз он нападёт, а рядом стоящие "компаньоны", которые имеют статус помощи всем союзникам, сразу же должны помочь, но это пока только теория.
werr Опубликовано 15 марта, 2016 Опубликовано 15 марта, 2016 Нет, вся идея в том, что я не дам НПС враждебную мне фракцию, я просто заставлю его на меня напасть после диалога, а раз он нападёт, а рядом стоящие "компаньоны", которые имеют статус помощи всем союзникам, сразу же должны помочь, но это пока только теория. Тогда так и получится, как я описал. Дело не в том, фракцию ты одному НПС добавишь или через StartCombat() заставишь его, – дело в том, что в этих случаях (когда ты над одним НПС махинации проводишь), остальным потребуется еще какое-то время (вплоть до десяти секунд), чтобы осознать, что произошло. Во избежания такой задержки лучше добавлять фракции сразу всем (или скрипт кидать на всех). Даже если у тебя предложенная тобой задумка сработает успешно, то не факт что на других машинах это сработает так же "плавно". Поэтому лучше смотреть на все с позиции игры. Если ты всем сразу задашь это действие, то все одновременно его выполнят. И при каждом прогоне будут выполнять его синхронно. П,С, я сейчас не в лучшей кондиции мысли излагать доступно, но, думаю, понять можно. Я понял. 1 A Random Dude's Story
Kogir Опубликовано 17 марта, 2016 Автор Опубликовано 17 марта, 2016 Правда будет задержка? Ну ладно, надо будет тестнуть, а как тогда всем добавить скрипт в конце диалога, а не только одному НПС?
werr Опубликовано 17 марта, 2016 Опубликовано 17 марта, 2016 17.03.2016 06:41:43, Kogir сказал(-а): а как тогда всем добавить скрипт в конце диалога, а не только одному НПС? Все в то же поле Papyrus_End_Fragment диалога с главарем (назовем его так). Просто вместо комманды атаковать одному НПС, впиши туда всех необходимых. 1 A Random Dude's Story
Kogir Опубликовано 17 марта, 2016 Автор Опубликовано 17 марта, 2016 17.03.2016 13:32:40, werr сказал(-а): Все в то же поле Papyrus_End_Fragment диалога с главарем (назовем его так). Просто вместо комманды атаковать одному НПС, впиши туда всех необходимых. И как akspeaker.startcombat(Game.GetPlayer()) изменить для нескольких НПС можно?
werr Опубликовано 17 марта, 2016 Опубликовано 17 марта, 2016 17.03.2016 13:51:54, Kogir сказал(-а): И как akspeaker.startcombat(Game.GetPlayer()) изменить для нескольких НПС можно? Я startcombat() не использую, это малограмотно. Я делаю через фракции, настраивая их. Сути дела это не меняет. Как? вот так: Спойлер Мне удобней, основной код писать в стадиях квеста, а не в диалоговом окне, поскольку так искать потом быстрее, да и проперти всякий раз заново создавать не нужно. Но при желании ты в поле Papyrus Fragmet (End) можешь вписать все что угодно. 1 A Random Dude's Story
Kogir Опубликовано 17 марта, 2016 Автор Опубликовано 17 марта, 2016 17.03.2016 15:29:07, werr сказал(-а): Я startcombat() не... Ну, у меня пока без квеста, то есть мне нужно как раз таки использовать этот код в одном из диалогов. Насколько я понял из твоего кода, то ты включил как-то своего персонажа в фракцию, а затем при этом исходе событий ты его из неё вынул и поместил во враждебную. Но как тогда мне без квеста поместить персонажа сначала в мирную фаркцию, а потом во враждебную, а после их убийство удалить его и из второй?
werr Опубликовано 17 марта, 2016 Опубликовано 17 марта, 2016 17.03.2016 15:33:32, Kogir сказал(-а): Ну, у меня пока без квеста, то есть мне нужно как раз таки использовать этот код в одном из диалогов. Насколько я понял из твоего кода, то ты включил как-то своего персонажа в фракцию, а затем при этом исходе событий ты его из неё вынул и поместил во враждебную. Но как тогда мне без квеста поместить персонажа сначала в мирную фаркцию, а потом во враждебную, а после их убийство удалить его и из второй? Ну если без квеста, то сделай не с фракциями, а с StartCombat(). Будет у тебя в поле Папирус диалога следующее: Actor01.StartCombat(game.GetPlayer()) Actor02.StartCombat(game.GetPlayer()) Actor03.StartCombat(game.GetPlayer()) Actor04.StartCombat(game.GetPlayer()) ................. Ну и всех этих ActorXX придется объявить в проперти (как актеров). 1 A Random Dude's Story
Kogir Опубликовано 17 марта, 2016 Автор Опубликовано 17 марта, 2016 То есть, нужно вписать id тех нпс, которые я хочу, чтобы на меня напали? Типа Vuasyavoin001.StartCombat(game.GetPlayer())
werr Опубликовано 17 марта, 2016 Опубликовано 17 марта, 2016 Что? Тебе нужно объявить переменные и задать им значения. 1 A Random Dude's Story
Kogir Опубликовано 17 марта, 2016 Автор Опубликовано 17 марта, 2016 17.03.2016 16:26:52, werr сказал(-а): Что? Тебе нужно объявить переменные и задать им значения. А где их можно взять?
Kogir Опубликовано 18 марта, 2016 Автор Опубликовано 18 марта, 2016 Я не понял как задавать actor, поэтому решил по пробывать через "bossemployee" сделать, и вышло без всяких задержек)
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти