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


Фотография

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

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

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

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

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


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

Отправлено

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

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

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

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



 




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

#262 Ссылка на это сообщение Vitalyudin

Vitalyudin
  • Existential Void Guardian


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

Отправлено

После того, как перенёс "dlc2miraakscript" в нужную папку выдаёт это

Последнюю оставшуюся ошибку, которая говорит:

too many arguments passed to function

Что в функцию ("DeathSequence") суётся слишком много аргументов. Конструкция "MQKillDragon.DeathSequence" значит, что функция вызывается из объекта MQKillDragon. Ищем этот скрипт.

И вот тут-то самое весёлое - есть "MQKillDragon" из основной игры, и в нём эта функция только с одним аргументом:

function DeathSequence(Actor dragonRef)

Т.е. вот это вот "MQKillDragon.DeathSequence(Dragon.GetActorReference(), Miraak.GetActorReference())" с двумя актёрами-аргументами - драконом и Мираком - сюда не подходит.

 

А есть "MQKillDragon" в папке исходников DLC Dragonborn - этот же скрипт, обновлённый специально для DLC, в котором эта функция как раз с двумя аргументами:

function DeathSequence(Actor dragonRef, Actor AbsorbActor = None, bool MiraakAppears = False)

Тебе нужно забэкапить (необязательно, впрочем) этот скрипт в Source, потом заменить его на новый из Source/Dragonborn, после чего всё спокойно скомпилится.



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

mr Jyggalag
  • Ветеран

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

Отправлено

Последнюю оставшуюся ошибку, которая говорит:
Что в функцию ("DeathSequence") суётся слишком много аргументов. Конструкция "MQKillDragon.DeathSequence" значит, что функция вызывается из объекта MQKillDragon. Ищем этот скрипт.
И вот тут-то самое весёлое - есть "MQKillDragon" из основной игры, и в нём эта функция только с одним аргументом:

function DeathSequence(Actor dragonRef)
Т.е. вот это вот "MQKillDragon.DeathSequence(Dragon.GetActorReference(), Miraak.GetActorReference())" с двумя актёрами-аргументами - драконом и Мираком - сюда не подходит.
 
А есть "MQKillDragon" в папке исходников DLC Dragonborn - этот же скрипт, обновлённый специально для DLC, в котором эта функция как раз с двумя аргументами:
function DeathSequence(Actor dragonRef, Actor AbsorbActor = None, bool MiraakAppears = False)
Тебе нужно забэкапить (необязательно, впрочем) этот скрипт в Source, потом заменить его на новый из Source/Dragonborn, после чего всё спокойно скомпилится.

Появилось ещё несколько "зависимостей" нужного мне скрипта от скрипта dlc2mq06miraakbossbattle, dlc2miraakcombatmagiclevelingscript, dlc2mqbosstentaclecontrollerdlc2mq06scriptdlc2standingstonescript... В итоге, мне надоело постоянно компилировать скрипт, перекидывать искомый скрипт из .../Data/Scripts/Source/Dragonborn в папку .../Data/Scripts/Source, поэтому я просто сразу перекинул все скрипты из .../Data/Scripts/Source/Dragonborn в .../Data/Scripts/Source. Как итог - всё заработало и скрипт скомпилировался!

 

UPD: изменил скрипт, добавив нужный мне фрагмент - всё, опять таки, скомпилировалось! Наконец то!

 

Огромное вам спасибо, мил-добр человек, во первых - за то что стерпели мой тупизм


Сообщение отредактировал mr Jygalag: 26 марта 2018 - 19:34


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

mr Jyggalag
  • Ветеран

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

Отправлено

Вопрос - почему мой скрипт может срабатывать не каждый раз? Т.е у меня есть заклинание, которое вешает на меня эффект, который далее вызывает скрипт, показывающий сообщение и оно не каждый раз вызывает это самое сообщение.
Вот код:

А вот изображения настроек эффекта и заклиания:

Если бы у меня заклинание не работало, то тогда было бы понятнее, чем в моей ситуации (заклинание иногда работает, а потом "выключается" и не вызывает сообщение)

P.s: ccылка на архив с ESP и BSA мода, если надо "пощупать" - тык. Заклинание (его Том для изучения) лежит в "Белом Флаконе", на втором этаже, на тумбочке рядом с кроватью. Для работы необходимо дополнение Dragonborn
Если что, все новые эффекты/заклинания/переменные/etc в моде начинаются с приставки "DSM".
P.s: "кракозябры" в названии заклинания не стал убирать, лень было

Сообщение отредактировал mr Jygalag: 30 марта 2018 - 18:32


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

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

Отправлено

Effect Archetype на Script поменять попробуй.


Сообщение отредактировал Azazellz: 30 марта 2018 - 17:28


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

mr Jyggalag
  • Ветеран

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

Отправлено

Effect Archetype на Script поменять попробуй.

Поменял - ноль эффекта

#267 Ссылка на это сообщение Wertys

Wertys
  • Новенький
  • 9 сообщений

Отправлено

Доброго времени! Немного споткнулся, нужна помощь: 

1. Как сделать чтоб в эффекте проигрался определенный звук? Пробовал так:

Sound Property ТSound Auto

Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect)
...
ТSound.play(Self.GetRef())
...
EndEvent

Скрипт нормально сохраняется, но в игре не работает однако. 

 

2. Как сделать проверку в скрипте, что определенный маркер (Xmarker) находится в определенной локации? GetDistance мне для этого не подходит.

Какую функцию для этого лучше использовать (IsInLocation? GetCurrentLocation? GetLocation?), и как? 

Заранее спасибо за любую помощь. Подойдут так же готовые скрипты из игры, если такие есть.



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

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

Отправлено

1. Как сделать чтоб в эффекте проигрался определенный звук? Пробовал так:

А как насчет просто в СК проставить нужный звук в этом эффекте? =)



#269 Ссылка на это сообщение Wertys

Wertys
  • Новенький
  • 9 сообщений

Отправлено

А как насчет просто в СК проставить нужный звук в этом эффекте? =)

Звук проигрывается в зависимости от результата.

 

upd. Вопрос снят!


Сообщение отредактировал Wertys: 03 апреля 2018 - 07:52


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

mr Jyggalag
  • Ветеран

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

Отправлено

Вопрос - может кто описать, насколько это подробно, создание циклического меню (т.е меню с несколькими уровнями и возможностью перемещаться по ним)?

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

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

Отправлено

Вопрос - может кто описать, насколько это подробно, создание циклического меню (т.е меню с несколькими уровнями и возможностью перемещаться по ним)?

Через месседжбоксы чтоль?

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

Соответственно в под-меню вместо кнопки "выход" будет "вызвать основное меню".


Сообщение отредактировал Azazellz: 05 апреля 2018 - 06:37


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

mr Jyggalag
  • Ветеран

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

Отправлено

Через месседжбоксы чтоль?
Делаешь как обычный месседжбокс, только на кнопках для вызова под-меню вместо "сделать что-то скриптом" будет "открыть другой месседжбокс".
Соответственно в под-меню вместо кнопки "выход" будет "вызвать основное меню".

Я уже разобрался сам, просто следовало немного погуглить.

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

mr Jyggalag
  • Ветеран

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

Отправлено

Вопрос - может ли кто сказать, как сделать "ползунок" для Message (например, подобный ползунок регулирует время, сколько будет спать/ждать Довакин)? А то делать меню, где игрок изменял бы числовое значение просто тыкая на кнопки, как-то слишком глупо и лень, если такой способ есть.

Ещё, как альтернативу, можно скинуть мод, где такая система уже была реализована, а то я, поискав немного на Нексусе, как-то ничего не нашёл.

#274 Ссылка на это сообщение Karandra

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



  • 3 685 сообщений
  •    

Отправлено

Я не видел готового слайдер-контрола, но может имеет смысл использовать что-то из UIExtensions? Вроде Wheel или List.


pre_1454504183__logo.png Kortex Mod Manager: Discord | GitHub | Web-site

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

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

Отправлено

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

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

mr Jyggalag
  • Ветеран

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

Отправлено

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

 

Также, ещё вопрос - как мне "искусственно" повысить очки брони у персонажа? Т.е, в независимости от того, какую одежду/броню носит персонаж, у него всегда было определённое число брони. Посмотрел Actor Value - ничего подобного там нет


Сообщение отредактировал mr Jyggalag: 17 апреля 2018 - 19:04


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

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

Отправлено

Вопрос - как осуществляется вызов собственной функции (т.е. созданной мной) в других скриптах? Также пытался найти информацию о наследовании одного созданного скрипта к другому созданному скрипту, но не нашёл ничего толкового.
 
Также, ещё вопрос - как мне "искусственно" повысить очки брони у персонажа? Т.е, в независимости от того, какую одежду/броню носит персонаж, у него всегда было определённое число брони. Посмотрел Actor Value - ничего подобного там нет

https://www.creation...ction_Reference

Разделы "Calling Functions" и "Accessing Functions From Other Scripts"

 

За "броню" отвечает параметр DamageResist.


Сообщение отредактировал Azazellz: 17 апреля 2018 - 19:17


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

mr Jyggalag
  • Ветеран

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

Отправлено

https://www.creation...ction_Reference
Разделы "Calling Functions" и "Accessing Functions From Other Scripts"

Т.е, как я понял, мне просто надо прописать
myRefAliasScript property refScript auto
а затем через refScrip вызывать функции из скрипта myRefAliasScript?

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

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

Отправлено

Т.е, как я понял, мне просто надо прописать

myRefAliasScript property refScript auto
а затем через refScrip вызывать функции из скрипта myRefAliasScript?

 

Если у тебя функция в скрипте аллиаса квеста висит - то да.

Экспериментируй, я давно уже это делал, могу не помнить всего.



#280 Ссылка на это сообщение Karandra

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



  • 3 685 сообщений
  •    

Отправлено

Иногда я думаю почему же в Папирусе всё сделано через жопу. Потом вспоминаю кто его делал и всё встаёт на свои места.


pre_1454504183__logo.png Kortex Mod Manager: Discord | GitHub | Web-site

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

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

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

Отправлено

Иногда я думаю почему же в Папирусе всё сделано через жопу. Потом вспоминаю кто его делал и всё встаёт на свои места.


https://youtu.be/acmxWIF3ZZk





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

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

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