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


Фотография

Вопросы по скриптам

papyrus help скрипты вопросы

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

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

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


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

Отправлено

Тема для вопросов по скриптингу.

Функции папируса:

На английском

На русском (не все, но базис)



 




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

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

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

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

Отправлено

Вопрос - я не могу брать значение/тип призываемого существа, а затем передавать это значение в заклинание? Т.е я использую какое-нибудь заклинание изгнания, а тип изгнанного существа передаётся в призыва (изгоняю какого-нибудь дремора, а затем этого же дремора специальным заклинанием призываю; далее изгоняю огненного атронаха - и в место дремора вызываю уже огненного атронаха).
И ещё - кто разъяснит, как работает этот скрипт (не в плане, что делает в результате своего действия, а именно как он работает)?

Вот он:

Ну почему нет? Есть 2 способа: как я это делаю и более оптимальный с точки зрения ресурсов системы. Первый способ состоит в том, что ты создаешь квест с пустым элиасом типа ForcedReference (должен быть Optional и Allow Reserved). При касте изгнания (что бы это не значило, я хз в магии скайрима), ты проверяешь, что квест не запущен, а если запущен, то завершаешь его. Как только изгоняется твой нпс (target заклинания), ты запускаешь квест и подхватываешь этот таргет в элиас квеста. Затем в скрипт-фрагменте призыва вытягиваешь ActorBase из того элиаса и спаунишь копию актера.

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

Как-то так. А скрипт, что ты привел, — это детский лепет, он работает только сам с собой, с другими скриптами он не общается.


Update. Черт. CastAs() и GetPropertyValue(), как и класс script object похоже, добавили только в фоллауте. Тогда второй красивый вариант отпадает. Через квест. Все через квест.

#203 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

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

А потом из этого формлиста их брать как цель для призыва.



#204 Ссылка на это сообщение mr Jyggalag

mr Jyggalag
  • Ветеран

  • 609 сообщений
  •    

Отправлено

Как-то так. А скрипт, что ты привел, он работает только сам с собой, с другими скриптами он не общается.

Я разобрался вроде... Правильно понимаю, что его (сам скрипт) надо вешать на магический эффект?

Сообщение отредактировал mr Jygalag: 10 декабря 2017 - 14:36


#205 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Правильно понимаю, что его (сам скрипт) надо вешать на магический эффект?

Правильно понимаешь.



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

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

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

Отправлено

Вариант с формлистом тоже хорош. В общем-то, поскольку, как мы выяснили, напрямую запросить скрипт нельзя, тебе нужно просто хранить указатель на актера где-то, пока он либо не появится, либо не перестанет быть актуальным. А в какой валюте это делать - вопрос предпочтений. Единственное что, если берешься работать с Formlist, следи за индексами. Чтоб не было такого, что ты все время раздуваешь лист (его объем конечен) и путаешь, к какому элементу массива тебе обращаться. В общем, везде можно ошибиться, смотри внимательно.

#207 Ссылка на это сообщение =D=

=D=
  • Новенький
  • 29 сообщений

Отправлено

Появился такой вопрос: как вызвать пользовательскую функцию из другого скрипта? 

Пример: есть скрипт "А", с функцией "fun". Как вызвать fun в скрипте "В"



#208 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Появился такой вопрос:

https://www.creation...ction_Reference
  • =D= это нравится

#209 Ссылка на это сообщение =D=

=D=
  • Новенький
  • 29 сообщений

Отправлено

 

Cпасибо, снова меня выручили 



#210 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Cпасибо, снова меня выручили 

Добавь в закладки CK-вики, там много полезного по скриптам =)



#211 Ссылка на это сообщение =D=

=D=
  • Новенький
  • 29 сообщений

Отправлено

Здравствуйте. И у меня  пара странных вопросов:

1. Что выполняется быстрее (либо оказывает наименьшую нагрузку на скриптовый движок):  цикл, перебирающий массив из N - элементов, или же N конструкции elseif, следующих друг за другом?  

2. Практический у всех игровых предметов есть ключевые слова. Допустим, мне нужно проверить два ключевых слова: "ArmorMaterialSteel" и "WeapMaterialSteel" - можно ли использовать маску чтобы вместо двух ключей написать один, типа "*Steel "?  


Сообщение отредактировал =D=: 17 декабря 2017 - 23:03


#212 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

1. Чего не знаю, того не знаю.

Знаю только, что game.getplayer выполняется медленнее, чем игрок, заданный через Property или напрямую в скрипте =)

2. Сомневаюсь.


  • =D= это нравится

#213 Ссылка на это сообщение =D=

=D=
  • Новенький
  • 29 сообщений

Отправлено

Благодарю за быстрый ответ)



#214 Ссылка на это сообщение =D=

=D=
  • Новенький
  • 29 сообщений

Отправлено

Здравствуйте! И у меня снова вопрос: Есть ли в папирусе команда завершающая работу скрипта/функции? Что нибудь, на подобие break() или, хотя бы, goto()?

К примеру: Выполняется функция доходит, до условия, если условие истинно - сразу же завершает работу функции, если ложно - продолжает дальше свою работу. 



#215 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Здравствуйте! И у меня снова вопрос: Есть ли в папирусе команда завершающая работу скрипта/функции? Что нибудь, на подобие break() или, хотя бы, goto()?

К примеру: Выполняется функция доходит, до условия, если условие истинно - сразу же завершает работу функции, если ложно - продолжает дальше свою работу. 

return


  • =D= это нравится

#216 Ссылка на это сообщение lolxeycoc

lolxeycoc
  • Новенький
  • 1 сообщений

Отправлено

Когда я хочу создать новый скрипт пишет это, papyrus errors Unknown user flag Hidden No output generated for aateleport , compliation falied!



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

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

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

Отправлено

Когда я хочу создать новый скрипт пишет это, papyrus errors Unknown user flag Hidden No output generated for aateleport , compliation falied!

Да, все так. А в чем вопрос?

 

зы. Не очень понятно, что ты собрался прятать и зачем? Код в студию.



#218 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Ну значит убери этот Hidden флаг, где он у тебя стоит, и все.



#219 Ссылка на это сообщение WULDJOTNah

WULDJOTNah
  • Новенький
  • 10 сообщений
  •  

Отправлено

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

#220 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 034 сообщений
  •    

Отправлено

Вообще как-то можно. Через смену состояния анимации или еще как.

На самый крайний случай в стартовом квесте должна быть квестовая стадия отдельная для этого прописана - можно к ней "привязаться".


Сообщение отредактировал Azazellz: 10 января 2018 - 11:15


#221 Ссылка на это сообщение Oxbow

Oxbow
  • Скиталец
  • 44 сообщений

Отправлено

Когда я хочу создать новый скрипт пишет это, papyrus errors Unknown user flag Hidden No output generated for aateleport , compliation falied!

 

Та же проблема. Все обыскал, нигде не нашел этот "Hidden". Может я как-то не правильно что-то установил: Skyrim и Creation Kit из Steam, скрипт прописал по видео-туториалу gkalian (создание квеста часть 2).







Темы с аналогичным тегами papyrus, help, скрипты, вопросы

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

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