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


Фотография

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

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

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

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

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


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

Отправлено

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

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

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

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



 




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

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

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

Отправлено

Код покажи.

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


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

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

Отправлено

Код покажи.

 

Код на изменение стадии квеста в диалоге:

 

GetOwningQuest().SetObjectiveDisplayed(10)
GetOwningQuest().SetStage(10)

 

Ошибка:

 

Starting 1 compile threads for 1 files...
Compiling "TIF__01000D6D"...
<unknown>(0,0): Unable to find flags file: TESV_Papyrus_Flags.flg
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__01000D6D.psc(3,0): Unknown user flag Hidden
No output generated for TIF__01000D6D, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on TIF__01000D6D



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

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

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

Отправлено


Ну так компилятору нужен файл TESV_Papyrus_Flags.flg для работы. Он лежит в архиве с исходниками скриптов.
  • Oxbow это нравится

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

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

Отправлено

Ну так компилятору нужен файл TESV_Papyrus_Flags.flg для работы. Он лежит в архиве с исходниками скриптов.

 

С ума сойти, как просто. Мне даже стыдно.

 

Спасибо.



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

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

Отправлено

Добрый день.

При попытке компиляции скрипта запуска сцены в диалоге:

AAAQuestOxbow01Scene.Start()

Выдает ошибку:

Сцену делал по этому туториалу:


Сообщение отредактировал Oxbow: 24 февраля 2018 - 05:48


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

mr Jyggalag
  • Ветеран

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

Отправлено

Во время самостоятельных поисков ответа на собственный вопрос, я обнаружил глобальную переменную DLC2MiraakDragonSouls. По идее, она отвечает за кол-во душ, что находятся у Мирака (этот вывод основан на названии), но вот относятся они к финальной битве с ним или к непосредственному поглощению душ - я не знаю.
Для того, чтобы проверить это, я решил провести тестовый забег (т.е. создать персонажа и пройти DLC, попутно, в нужных ситуациях, "запрашивая" значение переменной). Так как узнать значение переменной через консоль мне лень (а в добавок я не вполне понял, как это сделать), то мною было принято решение создать мини мод, где я бы посредством применения заклинания вызывал окошко (Message), где было бы отображено значение DLC2MiraakDragonSouls (попутно, попытаться познакомиться и разобраться с месседжами).
Трудности возникли с самим "выведением окошка с переменной": я создал объект Message; создал эффект, куда привязал скрипт aaaaMiraakDSscript и написал код:
Ес-но я задал предварительно значения переменных:
Однако, при компиляции, мне CK выдаёт ошибку:

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

P.s

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


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

Vitalyudin
  • Existential Void Guardian


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

Отправлено

Так как узнать значение переменной через консоль мне лень (а в добавок я не вполне понял, как это сделать)

Команда для этого: show variablename.
 

DSMiraakMessage.Show(DLC2MiraakDragonSouls.Getvalue())

Думаю/предполагаю, что Message.Show может показывать конкретную переменную, а не функцию, берущую значение переменной.
Задай переменную типа float, ей присвой значение глобалки DLC2MiraakDragonSouls, и попробуй показывать именно эту переменную.

 

UPD: а ещё в твоём скрипте (если это он весь) нет ивента, в маг. эффекте он должен быть OnEffectStart.



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

mr Jyggalag
  • Ветеран

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

Отправлено

Команда для этого: show variablename.

Спасибо большое, сохраню на всякий случай

Думаю/предполагаю, что Message.Show может показывать конкретную переменную, а не функцию, берущую значение переменной.
Задай переменную типа float, ей присвой значение глобалки DLC2MiraakDragonSouls, и попробуй показывать именно эту переменную.
 
UPD: а ещё в твоём скрипте (если это он весь) нет ивента, в маг. эффекте он должен быть OnEffectStart.

Как только добавил конструкцию с OnEffectStart всё заработало. Благодарю за быстрый и информативный ответ

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

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

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

Отправлено

Добрый день.

У тебя название сцены и скрипта совпадают. В этом ошибка.



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

2Baxes
  • Скиталец
  • 51 сообщений
  •  

Отправлено

*удалено*


Сообщение отредактировал 2Baxes: 02 марта 2018 - 12:31


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

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

Отправлено

Доброго времени суток. 
Кто-нибудь может подсказать Event который вызывается, когда игрок убивает моба (любого). 



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

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

Отправлено

Доброго времени суток. 
Кто-нибудь может подсказать Event который вызывается, когда игрок убивает моба (любого). 

OnDeath (если скрипт прицеплен к актеру).

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

Perks for Blood поищи на этом сайте, там в комментах есть мой архив, в котором как раз через квестовую систему это все отслеживается.

Ну и сам мод на это тоже направлен - убиваешь чуваков, получаешь перки.


Сообщение отредактировал Azazellz: 04 марта 2018 - 15:01

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

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

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

Отправлено

 

Премного благодарен



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

mr Jyggalag
  • Ветеран

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

Отправлено

Вопрос - почему при компиляции моего скрипта, с назначенными значениями, куда надо, мне выдаёт CK ошибку? По идее, если я ничего не забыл, скрипт должен работать

Cам скрипт:

Код ошибки:

Примечания к переменным и их значениям:



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

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

Отправлено

Весь код, который выполняет какие-то действия, должен находиться в функциях или событиях.

Scriptname DSMiraak extends Scene 

GlobalVariable Property DSMiraakCount  Auto
float Property DSM Auto

Function DoSmth()
    DSM = DSMiraakCount.Getvalue()
    DSM+=1
    DSMcount.SetValue(DSM)
EndFunction

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


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

mr Jyggalag
  • Ветеран

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

Отправлено



 

Весь код, который выполняет какие-то действия, должен находиться в функциях или событиях.

Scriptname DSMiraak extends Scene 

GlobalVariable Property DSMiraakCount  Auto
float Property DSM Auto

Function DoSmth()
    DSM = DSMiraakCount.Getvalue()
    DSM+=1
    DSMcount.SetValue(DSM)
EndFunction

Благодарю, осталось только понять, как присобачить присоединить этот скрипт к нужной мне сцене...



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

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

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

Отправлено

Благодарю, осталось только понять, как присобачить присоединить этот скрипт к нужной мне сцене...

Легко. Например, можно повесить этот скрипт не на сцену, а на сам квест:

Scriptname DSMiraak extends Quest

GlobalVariable Property DSMiraakCount  Auto

Function CountSoulsMiraak()
  Int DSM = (DSMiraakCount.GetValue() as Int)
  DSM += 1
  DSMiraakCount.SetValue(DSM)
EndFunction

В папирус-фрагменте сцены в поле kmyQuest выбрать DSMiraak, а в само поле вписать вызов функции:

kmyQuest.CountSoulsMiraak()


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

mr Jyggalag
  • Ветеран

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

Отправлено

Легко. Например, можно повесить этот скрипт не на сцену, а на сам квест:

Scriptname DSMiraak extends Quest

GlobalVariable Property DSMiraakCount  Auto

Function CountSoulsMiraak()
  Int DSM = (DSMiraakCount.GetValue() as Int)
  DSM += 1
  DSMiraakCount.SetValue(DSM)
EndFunction
В папирус-фрагменте сцены в поле kmyQuest выбрать DSMiraak, а в само поле вписать вызов функции:
kmyQuest.CountSoulsMiraak()

Благодарю, конечно за помощь, но я либо туплю, либо не то открываю, но поле kmyQuest в упор не вижу...
LThZAeO.png

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

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

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

Отправлено

Благодарю, конечно за помощь, но я либо туплю, либо не то открываю, но поле kmyQuest в упор не вижу...
 

Божечки, Скайримский СК такой... задержанный. Давненько я уже не открывал его, года три. То, что я описал, относится к редактору под Фолл.

 

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

  Int DSM = (DSMiraakCount.GetValue() as Int)
  DSM += 1
  DSMiraakCount.SetValue(DSM)

 

ну или вовсе облениться и выдать нечто такое:

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


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

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

Отправлено

У тебя название сцены и скрипта совпадают. В этом ошибка.

 

Спасибо за ответ. К сожалению не могу проверить.

 

Так как Papyrus сошел с ума. При попытке компиляции любого скрипта windows вырубает его и вылазит такая ошибка.

 


Сообщение отредактировал Oxbow: 15 марта 2018 - 15:06






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

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

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