Перейти к содержимому


Фотография

Creathion Kit - Скрипт атаки

creathion kit - скрипт атаки скрипт атаки

  • Авторизуйтесь для ответа в теме

#1 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Здравствуйте, как можно настроить NPC таким образом, чтобы когда ты попал в его поле зрение, он подошёл к тебе, завёл диалог и после него атаковал тебя?




  • Авторизуйтесь для ответа в теме
Сообщений в теме: 25

#2 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Тут.



#3 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Извини, я немного не понял, а куда StartCombat(game.getplayer()) вставлять нужно? Если в "End Papyrus fragment", то скрипт выдаёт ошибку и отказывается работать.

P.S. А как можно заставить группу НПС напасть на тебя, после проведения диалоги с одним?


Сообщение отредактировал Kogir: 14 марта 2016 - 11:55


#4 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Извини, я немного не понял, а куда StartCombat(game.getplayer()) вставлять нужно? Если в "End Papyrus fragment", то скрипт выдаёт ошибку и отказывается работать.
P.S. А как можно заставить группу НПС напасть на тебя, после проведения диалоги с одним?


По поводу скрипта позже отвечу. Группа может напасть если их в какуюто фракцию объеденить к примеру и сделать игроку фракцию, враждебную первой. Тогда при добавлении игрока в нее по идее сработает агро.

#5 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

По поводу скрипта позже отвечу. Группа может напасть если их в какуюто фракцию объеденить к примеру и сделать игроку фракцию, враждебную первой. Тогда при добавлении игрока в нее по идее сработает агро.

Я со скриптом уже разобрался) его просто можно скопировать в недрах "Старого орка". Но нужно же будет игрока потом удалять из этой фракции? Может есть более скриптовый метод? Кстати, позволю пока себе задать тут ещё вопрос. Как можно перевести во время какого-нибудь квеста местность в другую фазу? То есть, чтобы нпс оригинальные пропали оттуда, а на время квеста я бы заселил их новыми.



#6 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено


Creationkit.com

Там по папирусу есть раздел со всеми командами. Вообще для перемещений неписей к примеру их можно задизэблить disable(), чтоб потом enable(), ну или moveto() - тут еще пара видов есть и эт лучше посмотреть на вики все прелести работы с командой.

С фракциями идентично. Можно добавлять их и убирать. А точные команды сходу не вспомню. Поищите что-то вроде add(to)faction remove(from)faction

#7 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Creationkit.com

Там по папирусу есть раздел со всеми командами. Вообще для перемещений неписей к примеру их можно задизэблить disable(), чтоб потом enable(), ну или moveto() - тут еще пара видов есть и эт лучше посмотреть на вики все прелести работы с командой.

С фракциями идентично. Можно добавлять их и убирать. А точные команды сходу не вспомню. Поищите что-то вроде add(to)faction remove(from)faction

Интересно, надо будет поискать ещё, как это сделать. А что можешь ответить на ещё один вопрос? Как сделать рандомную внешность НПС, с заданными параметрами?



#8 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Интересно, надо будет поискать ещё, как это сделать. А что можешь ответить на ещё один вопрос? Как сделать рандомную внешность НПС, с заданными параметрами?

Пресеты есть. Примерно штук по 10 на расу. Можно и свои конечно же. Так-то получается что внешность не совсем рандомная. Ее сперва нужно создать.



#9 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Пресеты есть. Примерно штук по 10 на расу. Можно и свои конечно же. Так-то получается что внешность не совсем рандомная. Ее сперва нужно создать.

А если я не ошибаюсь, пресеты как-то в каком-то Racemenu делаются? А как их потом для НПЦ вставлять, чтобы у них она в игре рандомно генерилась?



#10 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

 

 

У меня пока небыло необходимости с ними вплотную работать. Вероятно преметы неписей потом заносятся как лвльные актеры.



#11 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

У меня пока небыло необходимости с ними вплотную работать. Вероятно преметы неписей потом заносятся как лвльные актеры.

Лвльные актёры, этот как бы точки спавна нпс с определёнными значениями, которым ты можешь присваивать, так скажем определённые условия внешности? В данном случае пресеты? Я просто пока с ними не работал и использовал только поставленных в мире нпс



#12 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Я кстати тут подумал, и родил теорию, пока не опробовал, но я кажется понял, как сделать так, чтобы группа нпс на тебя напала)

Нужно сделать с главным нпс их "Нанимателем и наёмником" и поставить в их характеристиках "помогать союзникам", в итоге при срабатывании скрипта в диалоге, они все вместе нападут)

Но пока это лишь теория)



#13 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

А если я не ошибаюсь, пресеты как-то в каком-то Racemenu делаются? А как их потом для НПЦ вставлять, чтобы у них она в игре рандомно генерилась?

Ошибаешься. Racemenu – это мод. Пресеты же делаются в редакторе.

  • "Пресеты" это обычные НПС, вручную созданные (тобой в данном случае). Каждому лепишь желаемую внешность. Что до одежды, то можешь сделать свой outfit, закинуть в него броню из левел листа (левел лист опять же можно свой создать, если ванильные не устраивают).
  • Идешь в раздел LeveledCharacter и создаешь там запись:
  • Возвращаешься в раздел Actor и создаешь нового НПС с темплейтом созданного на предыдущем шаге LeveledCharacter
  • Profit. теперь можно расставлять свежесозданного актера, и их внешность (а также характеристики) будет браться из забитых пресетов.

 

 

 

 

 

Я кстати тут подумал, и родил теорию, пока не опробовал, но я кажется понял, как сделать так, чтобы группа нпс на тебя напала)
Нужно сделать с главным нпс их "Нанимателем и наёмником" и поставить в их характеристиках "помогать союзникам", в итоге при срабатывании скрипта в диалоге, они все вместе нападут)
Но пока это лишь теория)

 

Димонойдер тебе все правильно сказал. скриптом добавить игроку фракцию, которая будет враждебно настроена фракции НПС. Или добавить каждому НПС из группы, фракцию, враждебную PlayerFaction. Как поступить – зависит от конкретной ситуации. Как удобней реализовать, так и надо.

 

Если же сделать так, как ты сейчас описал, то получится следующее. НПС, которому скриптом будет добавлена враждебная фракция, нападает на игрока; пока игрок не даст сдачи, остальные НПС будут разбегаться в страхе с воплями "Там драка". И лишь когда игрок тоже начнет бить в ответ нападающего, остальные резко достанут оружие и, крича "Сейчас ты сдохнешь", ринутся на тебя. Со стороны такое поведение выглядит, мягко говоря, неубедительно.



#14 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

"Если же сделать так, как ты сейчас описал, то получится следующее. НПС, которому скриптом будет добавлена враждебная фракция, нападает на игрока; пока игрок не даст сдачи, остальные НПС будут разбегаться в страхе с воплями "Там драка". И лишь когда игрок тоже начнет бить в ответ нападающего, остальные резко достанут оружие и, крича "Сейчас ты сдохнешь", ринутся на тебя. Со стороны такое поведение выглядит, мягко говоря, неубедительно."

 

Нет, вся идея в том, что я не дам НПС враждебную мне фракцию, я просто заставлю его на меня напасть после диалога, а раз он нападёт, а рядом стоящие "компаньоны", которые имеют статус помощи всем союзникам, сразу же должны помочь, но это пока только теория.



#15 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

Нет, вся идея в том, что я не дам НПС враждебную мне фракцию, я просто заставлю его на меня напасть после диалога, а раз он нападёт, а рядом стоящие "компаньоны", которые имеют статус помощи всем союзникам, сразу же должны помочь, но это пока только теория.

 

Тогда так и получится, как я описал. Дело не в том, фракцию ты одному НПС добавишь или через StartCombat() заставишь его, – дело в том, что в этих случаях (когда ты над одним НПС махинации проводишь), остальным потребуется еще какое-то время (вплоть до десяти секунд), чтобы осознать, что произошло. Во избежания такой задержки лучше добавлять фракции сразу всем (или скрипт кидать на всех).

 

Даже если у тебя предложенная тобой задумка сработает успешно, то не факт что на других машинах это сработает так же "плавно". Поэтому лучше смотреть на все с позиции игры. Если ты всем сразу задашь это действие, то все одновременно его выполнят. И при каждом прогоне будут выполнять его синхронно.  

 

П,С, я сейчас не в лучшей кондиции мысли излагать доступно, но, думаю, понять можно. Я понял.



#16 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Правда будет задержка? Ну ладно, надо будет тестнуть, а как тогда всем добавить скрипт в конце диалога, а не только одному НПС?



#17 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

а как тогда всем добавить скрипт в конце диалога, а не только одному НПС?

Все в то же поле Papyrus_End_Fragment диалога с главарем (назовем его так). Просто вместо комманды атаковать одному НПС, впиши туда всех необходимых.



#18 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Все в то же поле Papyrus_End_Fragment диалога с главарем (назовем его так). Просто вместо комманды атаковать одному НПС, впиши туда всех необходимых.

И как akspeaker.startcombat(Game.GetPlayer()) изменить для нескольких НПС можно?



#19 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

И как akspeaker.startcombat(Game.GetPlayer()) изменить для нескольких НПС можно?

Я startcombat() не использую, это малограмотно. Я делаю через фракции, настраивая их. Сути дела это не меняет. Как? вот так:

 

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

Но при желании ты в поле Papyrus Fragmet (End) можешь вписать все что угодно.



#20 Ссылка на это сообщение Kogir

Kogir
  • Скиталец
  • 47 сообщений
  •  

Отправлено

Я startcombat() не...

Ну, у меня пока без квеста, то есть мне нужно как раз таки использовать этот код в одном из диалогов. Насколько я понял из твоего кода, то ты включил как-то своего персонажа в фракцию, а затем при этом исходе событий ты его из неё вынул и поместил во враждебную. Но как тогда мне без квеста поместить персонажа сначала в мирную фаркцию, а потом во враждебную, а после их убийство удалить его и из второй?






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых