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


Фотография

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

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

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

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

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


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

Отправлено

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

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

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

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



 




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

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

mr Jyggalag
  • Ветеран

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

Отправлено

В таком случае, достаточно просто этот кусок в поле папирус фрагмента вписать.

  Int DSM = (DSMiraakCount.GetValue() as Int)
  DSM += 1
  DSMiraakCount.SetValue(DSM)
 
ну или вовсе облениться и выдать нечто такое:
 
  DSMiraakCount.SetValue(DSMiraakCount.GetValue()  + 1)

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

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

mr Jyggalag
  • Ветеран

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

Отправлено

DSMiraakCount.SetValue(DSMiraakCount.GetValue()  + 1)

UPD ситуации - назначил скрипт на финальный этап сцены, но при тестировании появилась небольшая загвоздка. Если говорить упрощённо - Мирак перестал поглощать души драконов, а скрипт, что был вставлен в фрагмент папируса, не работает (наверняка второе есть следствие первого - т.е так как души драконов не поглощаются, то и скрипт не работает).

Попробую провести ещё пару тестов, во время которых попробую переставить скрипт в различные фазы (а не в финальную сцену). Возможно, приду к какому-нибудь результату. Если не получится, то переставлю скрипт в одну из стадий квеста, а если и это не сработает, то:

а) пойду искать инф-цию о том, как подсчитывать кол-во проигранных сцен

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



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

mr Jyggalag
  • Ветеран

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

Отправлено

В поиске ответа на то, как подсчитать кол-во "Краж" Мираком душ (т.е кол-во проигранных сцен из квеста DLC2SoulSteal из DLC Dragonborn) я решил изменить скрипт, привязанный к квесту "краж" - DLC2SoulStealScript. Цель проста - добавить в "финальный" фрагмет скрипта bp DLC мою часть кода, т.е заставить скрипт дополнения "поработать на меня". Однако, когда я отредактировал через Notepad++ этот скрипт, добавив незначительные изменения, то при компиляции этого скрипта через CK мне выдало ошибку:

Сама ошибка

А вот новые части кода, что я добавил в скрипт DLC2SoulStealScript:
новые части кода

Почему скрипт не сработал - понятия не имею. Но вот в чём загвоздка - после того, как я второй раз декомпилировал скрипт DLC2SoulStealScript.pex с помощью утилиты гн-на Кербера в DLC2SoulStealScript.psc (для того, чтобы получить "чистый" скрипт DLC2SoulStealScript.psc), то я также попробовал компилировать этот скрипт с помощью CK. Угадайте что? Правильно, CK выдал ошибку:
код ошибки


Одним словом - что за фигня тут происходит?

P.s: ссылка на скачивание отредактированного скрипта - тык; ссылка на оригинальный, т.е. не отредактированный мной сприт (в формате .psc), который я получил из dlc2soulstealscript.pex посредством Papyrus Assembler GUI - тык; ссылка на этот же скрипт, но в формате .pex (именно его я и извлёк из Dragonborn.bsa) - тык


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


#245 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 263 сообщений
  •    

Отправлено

CK мне выдало ошибку

Ответ был на предыдущей странице http://tesall.ru/top...ptam/?p=1412757

Всё провисло и болтается.


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

mr Jyggalag
  • Ветеран

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

Отправлено

Ответ был на предыдущей странице http://tesall.ru/top...ptam/?p=1412757

Разместил TESV_Papyrus_Flags.flg там, где надо (по пути ...Skyrim\Data\Scripts\Source) - теперь же CK ругается на другие вещи:
Код ошибки:
Проверил строчки 140, 141 и 142 - никаких символов таких и в помине нет:
 
    DSM = DSMiraakCount.Getvalue()
    DSM+=1
    DSMcount.SetValue(DSM)

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


#247 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 263 сообщений
  •    

Отправлено

Там какие-то посторонние символы. Возьми оригинальный файл и отредактируй ещё раз в каком-то нормальном редакторе (Notepad++, Sublime Text).

Всё провисло и болтается.


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

mr Jyggalag
  • Ветеран

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

Отправлено

Там какие-то посторонние символы. Возьми оригинальный файл и отредактируй ещё раз в каком-то нормальном редакторе (Notepad++, Sublime Text).

Пррблема как раз в том, что:
а) я пользовался Notepad++ для редактирования скрипта
б) доступа к оригинальному скрипту (в расширении .psc) у меня нет, так как файла scripts.rar (где, насколько помню, находятся исходники оригинальных скриптов) я у себя не нашёл, а сколько раз не тыкал в Стиме на "Проверить целостность кэша" - ноль эффекта. Поэтому, единственный способ для меня был самый длинный: достать из Dragonborn.bsa скрипт в формате .pex, затем его декомпилировать в "читабельный" формат .psc

#249 Ссылка на это сообщение Blondi

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

Отправлено

а что циферки в скобках обозначают? Первая - строка скрипта, наверное, а вторая?



#250 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 263 сообщений
  •    

Отправлено

Позиция символа в строке.

Всё провисло и болтается.


#251 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 263 сообщений
  •    

Отправлено

единственный способ для меня был самый длинный: достать из Dragonborn.bsa скрипт в формате .pex, затем его декомпилировать в "читабельный" формат .psc

Добытый исходник компилируется без твоих правок? Если да, то просто отредактируй его ещё раз, не копируй, а руками набери.

Всё провисло и болтается.


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

mr Jyggalag
  • Ветеран

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

Отправлено

Добытый исходник компилируется без твоих правок? Если да, то просто отредактируй его ещё раз, не копируй, а руками набери.

Исходник и отредактированный скрипт запускаются и выдают одинаковый код ошибки (у отредактированного скрипта, правда, немного другой код ошибки, так как он на несколько строк динее):
код ошибки


P.s: тут представлен код ошибки у отредактированного скрипта

Сообщение отредактировал mr Jygalag: 23 марта 2018 - 13:59


#253 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 263 сообщений
  •    

Отправлено

А архив с исходниками скриптов ты распаковал?

Всё провисло и болтается.


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

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

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

Отправлено

Да, однозначно это из-за отсутствия базовых скриптов в папке Source. Надо распаковать архив Scripts.rar (лежит в Skyrim - Data).



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

Vitalyudin
  • Existential Void Guardian


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

Отправлено

Если этот архив никак не подтягивается с СК, можно просто распаковать "Skyrim - Misc.bsa".

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

mr Jyggalag
  • Ветеран

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

Отправлено

А архив с исходниками скриптов ты распаковал?

  

Да, однозначно это из-за отсутствия базовых скриптов в папке Source. Надо распаковать архив Scripts.rar (лежит в Skyrim - Data).

Как я уже говорил:
“доступа к оригинальному скрипту (в расширении .psc) у меня нет, так как файла scripts.rar (где, насколько помню, находятся исходники оригинальных скриптов) я у себя не нашёл, а сколько раз не тыкал в Стиме на "Проверить целостность кэша" - ноль эффекта.”

Если этот архив никак не подтягивается с СК, можно просто распаковать "Skyrim - Misc.bsa".

СК разве цепляет с собой scripts.rar? Не знал, спасибо, теперь буду знать
Попробую распаковать архив, переустановив СК или «вырвав» его из "Skyrim - Misc.bsa", и отпишусь, получилось или нет.

#257 Ссылка на это сообщение YourBunnyWrote

YourBunnyWrote
  • Рабочий лень
  • 3 263 сообщений
  •    

Отправлено

Как я уже говорил:

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

Всё провисло и болтается.


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

Vitalyudin
  • Existential Void Guardian


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

Отправлено

СК разве цепляет с собой scripts.rar? Не знал, спасибо, теперь буду знать
Попробую распаковать архив, переустановив СК или «вырвав» его из "Skyrim - Misc.bsa", и отпишусь, получилось или нет.

Я не знаю точно, должен ли он подтягиваться с СК, но вроде бы должен.
В Skyrim - Misc.bsa просто тоже все исходники лежат.
Papyrus - почти полноценный ООЯП, все его объекты и их функции и события содержатся в исходниках (actor, game, magiceffect, ..., вот это вот всё).
Скрипт этот не компилируется потому, что в нем используются базовые функции объектов, взять которые компилятору неоткуда - нет исходников с функциями, вот и всё.

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

mr Jyggalag
  • Ветеран

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

Отправлено

Я не знаю точно, должен ли он подтягиваться с СК, но вроде бы должен.
В Skyrim - Misc.bsa просто тоже все исходники лежат.
Papyrus - почти полноценный ООЯП, все его объекты и их функции и события содержатся в исходниках (actor, game, magiceffect, ..., вот это вот всё).
Скрипт этот не компилируется потому, что в нем используются базовые функции объектов, взять которые компилятору неоткуда - нет исходников с функциями, вот и всё.

При компиляции отредактированного скрипта в папке "...Skyrim/Data/Scripts/Source/Dragonborn" (папка, где лежат исходники скриптов дополнения, скрипт которого я редактирую) выдаёт это:
Код ошибки:

При компиляции отредактированного скрипта в папке "...Skyrim/Data/Scripts/Source" выдаёт это:
Код ошибки:


Скрипт-исходник в папке "...Skyrim/Data/Scripts/Source" выдаёт это:
Код ошибки

Сообщение отредактировал mr Jygalag: 24 марта 2018 - 11:42


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

Vitalyudin
  • Existential Void Guardian


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

Отправлено

При компиляции отредактированного скрипта в папке "...Skyrim/Data/Scripts/Source/Dragonborn" (папка, где лежат исходники скриптов дополнения, скрипт которого я редактирую) выдаёт это

Ну, с обнаружением скрипта в "Data/Scripts/Source" ты разобрался.

 

Дальше:

При компиляции отредактированного скрипта в папке "...Skyrim/Data/Scripts/Source" выдаёт это:

Во всей этой простыне упоминается зависимость от "dlc2miraakscript". Скопируй/перемести этот исходник из "Source\Dragonborn" в "Source" и попробуй ещё раз. Там ещё в конце есть некая ошибка с кол-вом аргументов функции и неопределённый тип "none", но ими лучше заняться после исправления зависимости от того исходника - банально уменьшится выдача ошибок и её будет проще читать.



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

mr Jyggalag
  • Ветеран

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

Отправлено

Во всей этой простыне упоминается зависимость от "dlc2miraakscript". Скопируй/перемести этот исходник из "Source\Dragonborn" в "Source" и попробуй ещё раз. Там ещё в конце есть некая ошибка с кол-вом аргументов функции и неопределённый тип "none", но ими лучше заняться после исправления зависимости от того исходника - банально уменьшится выдача ошибок и её будет проще читать.

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

Сама 149 строка:
  	MQKillDragon.DeathSequence(Dragon.GetActorReference(), Miraak.GetActorReference())
 
Код оригинального скрипта, что был получен мной из архива надо предоставлять? Если что, вот он:
Код оригинального скрипта:

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






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

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

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