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


Фотография

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

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

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

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

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


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

Отправлено

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

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

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

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



 




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

#22 Ссылка на это сообщение Syswow

Syswow
  • Новенький
  • 17 сообщений

Отправлено

Всем привет, вообщем хочу заменить оригинальное горение глаз вампира, из мода "DVA" Когда в моде вампир начинает бой, у него пылают глаза в бою. Вообщем хочу всегда такие глаза. Помогите пожалуйста, что нужно cделать ? Вот скрин:  

Хочу постоянно такие глаза

 

В Showracemenu ставлю такие глаза, но потом они возвращаются в оригинальное значение по умолчанию... 



#23 Ссылка на это сообщение Bald

Bald
  • Скиталец
  • 31 сообщений

Отправлено

Люди как сделать так чтобы при прочтении книг ГГ получил перк?



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

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

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

Отправлено

Люди как сделать так чтобы при прочтении книг ГГ получил перк?

 

auto state WAITING

Event OnRead()
     Game.GetPlayer().AddPerk(Perk001)

     GoToState("DONE")
endEvent

endstate

 

state DONE

;

endstate



#25 Ссылка на это сообщение zilav

zilav
  • Профи
  • 300 сообщений
  •  

Отправлено

Кстати на официальном форуме создатель папируса рекомендовал не использовать эту конструкцию Game.GetPlayer(), а вместо этого создавать алиас под игрока и проводить операции с ним. Вроде медленно работает, не так оперативно обрабатывается в очереди скриптов или что-то в этом роде, уже не помню, это было года 2 назад. В данном случае это неважно так как вызывается редко, а вот для очень часто запускаемых скриптов может быть критично.



#26 Ссылка на это сообщение Bald

Bald
  • Скиталец
  • 31 сообщений

Отправлено

auto state WAITING

Event OnRead()
     Game.GetPlayer().AddPerk(Сюда я поставил свой перк)

     GoToState("DONE")
endEvent

endstate

 

state DONE

;

endstate

В игре не чего не произошло, что я делаю не  так? 



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

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

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

Отправлено

auto state WAITING
Event OnRead()
     Game.GetPlayer().AddPerk(Сюда я поставил свой перк)
     GoToState("DONE")
endEvent
endstate
 
state DONE
;
endstate
В игре не чего не произошло, что я делаю не  так?

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

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

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

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

Отправлено

Кстати на официальном форуме создатель папируса рекомендовал не использовать эту конструкцию Game.GetPlayer(), а вместо этого создавать алиас под игрока и проводить операции с ним. Вроде медленно работает, не так оперативно обрабатывается в очереди скриптов или что-то в этом роде, уже не помню, это было года 2 назад. В данном случае это неважно так как вызывается редко, а вот для очень часто запускаемых скриптов может быть критично.

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

Так вот, у меня на элиас игрока в этом квесте навешан скрипт, в котором сначала происходит регистрация под аним ивенты (сесть, встать и все это же в движении), а после в игра получает ивенты (от элиаса игрока соответственно), в которых приказавается пересмотр пакетов для этих четверых нпс-спутников. В общем, могу сказать, что не всегда это происходит быстро. Может оказаться так, что игра сразу всех четверых ставит в сник, бывает, что парочку сразу, а оставшихся потом, вплоть до 10-15 сек. А бывает, что и никого сразу не пересматривает.

#29 Ссылка на это сообщение Bald

Bald
  • Скиталец
  • 31 сообщений

Отправлено

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

А можно поподробней ? 



#30 Ссылка на это сообщение zilav

zilav
  • Профи
  • 300 сообщений
  •  

Отправлено

Может оказаться так, что игра сразу всех четверых ставит в сник, бывает, что парочку сразу, а оставшихся потом, вплоть до 10-15 сек. А бывает, что и никого сразу не пересматривает.

Я сам на папирусе не пишу, просто написал по памяти что видел. Кстати, рекомендую почитать ответы на различные вопросы от этого пользователя (разработчика папируса в Skyrim и, по всей видимости, в Fallout 4)

http://forums.bethso...83997-smkviper/

 

Там если нажать справа сверху на "Find Content", то выведет все темы, где он отвечал. Можно целый гайд составить из его советов и ответов на различные вопросы, что называется "из первых уст". Если учесть, что скоро офф. форум закроется из-за переезда на bethesda.net и темы переноситься не будут, то вся эта ценная информация будет утеряна. Времени осталось немного. Так что если есть желающие перевести и опубликовать что-то здесь, то самое время пока не поздно.


  • werr это нравится

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

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

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

Отправлено

Я сам на папирусе не пишу, просто написал по памяти что видел. Кстати, рекомендую почитать ответы на различные вопросы от этого пользователя (разработчика папируса в Skyrim и, по всей видимости, в Fallout 4)
http://forums.bethso...83997-smkviper/
 
Там если нажать справа сверху на "Find Content", то выведет все темы, где он отвечал. Можно целый гайд составить из его советов и ответов на различные вопросы, что называется "из первых уст". Если учесть, что скоро офф. форум закроется из-за переезда на bethesda.net и темы переноситься не будут, то вся эта ценная информация будет утеряна. Времени осталось немного. Так что если есть желающие перевести и опубликовать что-то здесь, то самое время пока не поздно.

Спасибо за совет. Времени не так много свободного, чтоб переводить и оформлять все. А поглядеть — это обязательно)

А можно поподробней ?

Хорошо. Тогда вечером, когда дома буду, напишу.

#32 Ссылка на это сообщение Bald

Bald
  • Скиталец
  • 31 сообщений

Отправлено

Про меня наверно забыли. 



#33 Ссылка на это сообщение Al Sin

Al Sin
  • Профи
  • 471 сообщений
  •    

Отправлено

На определенной стадии квеста Quest: 'questname', 100 предмет Predmet к которому привязывается скрипт PredmetDel должен быть удален. Имею представление как это сделать через тело квеста - но хотелось бы знать более простые пути, если они есть.

Scriptname PredmetDel extends ObjectReference

quest Property questname Auto

Event OnQuestStage('questname', 100)
If QuestStage => 100

EndIf
EndEvent
Event RemoveItem(Actor akActor)
If akActor == Game.GetPlayer()
  akActor.RemoveItem(Predmet)
EndIf
EndEvent

 

 

Понимаю, что синтаксис в чем то наивен - но если в итоге результат возможен, - прошу разъяснить ошибки.


Сообщение отредактировал Al Sin: 29 октября 2015 - 19:11


#34 Ссылка на это сообщение Wolf4

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

Отправлено

Уважаемые скриптоманы и те кто заморачивается со скриптами :)

 

Пожалуйста.

Подскажите - как задать переменную.. или же квестовую переменную.. или же глобальную переменную, чтобы она работала в диалогах?
В скрипте я могу поставить. А где УСЛОВИЯ в диалогах?

И как прописывать переменную в диалоговом окне?

У меня стоит NameCount.value = 1

И NameCount.value +=1 тоже не срабатывает.

 

Разбираю эти переменные уже шестой час))

Благодарю...


Сообщение отредактировал Wolf4: 02 ноября 2015 - 22:01


#35 Ссылка на это сообщение zilav

zilav
  • Профи
  • 300 сообщений
  •  

Отправлено

Подскажите - как задать переменную.. или же квестовую переменную.. или же глобальную переменную, чтобы она работала в диалогах?

Для глобальных переменных флаг Use Global в условии

http://www.creationk...gory:Conditions

 

Для скриптовых в условии функция GetVMQuestVariable.



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

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

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

Отправлено

 

В игре не чего не произошло, что я делаю не  так? 

 

Ну во-первых, скрипт надо повесить локально на объект (книгу). Во-вторых, написать и скомпилировать код. Объявив при этом проперти Perk001. В-третьих, задать потом значение этому проперти. И сохранить плагин.

вот скриншоты.  

 

 

Понимаю, что синтаксис в чем то наивен - но если в итоге результат возможен, - прошу разъяснить ошибки.

Синтаксис не то чтобы наивен, он неправилен. Event OnQuestStage, Event RemoveItem – ну вот откуда ты это взял-то? Нет попросту таких ивентов. Не существует в папирусе.

А также, даже если забить на то, что весь код состоит из двух не существующих в природе ивентов, то все равно внутри первого, который у тебя зовется Event OnQuestStage, какая-то ахинея. 

 

Стадия (не квеста, а просто какая-то переменная не объявленная при этом, которая еще и называется СтадияКвеста зачем-то)

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

 

Переводя на русский, там написано: 

если необъявленная переменная следовательно сто, тогда ничего не делай. И иначе тоже ничего не делай. Никак ничего не делай, короче) Ну и смысл это было писать. Причем с точки зрения логики, это звучит так же нелепо, как с точки зрения русского языка.

 

Мораль. Проблема не только в синтаксисе, но и в осознании того, что нужно сделать. Ерунда какая-то.



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

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

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

Отправлено

Подскажите - как задать переменную.. или же квестовую переменную.. или же глобальную переменную, чтобы она работала в диалогах?

В скрипте я могу поставить. А где УСЛОВИЯ в диалогах?

И как прописывать переменную в диалоговом окне?

У меня стоит NameCount.value = 1

И NameCount.value +=1 тоже не срабатывает.

 

не очень понятно, шо таке "квестовая переменная". Пример приведи, если можно. Глобальная же переменная это отдельный объект, который создается (как НПС, статика или любой другой объект). Найти можно в Miscellaneous -> Global :

 

 

Как использовать. на проперти глобалки (проперти должно быть типа GlobalVariable) можно вызывать команды GetValue(), SetValue(XX). Коротенький пример с офф вики:

GlobalVariable Property GameHour  auto

float myhour = GameHour.GetValue()
GameHour.SetValue(10)

 

Пример использования в диалогах:

 

Обрати внимание, что в поле Conditions диалога условие выглядит как GetGlobalValue, а не как в папирусе GetValue().



#38 Ссылка на это сообщение Wolf4

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

Отправлено

Для глобальных переменных флаг Use Global в условии

http://www.creationk...gory:Conditions

 

Для скриптовых в условии функция GetVMQuestVariable.

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

Глобальную переменную создал, как уже ранее говорил - но... Не знаю как точно и правильно сменить её в диаловых окошках BEGIN и END

У меня прописано "Count.Value + 1

Ещё не ясно, что дает функция += 1

Также если прописать "Count + 1" пишет, что нужна переменная "int"

Вот и куда всё это вставлять? ))

На примере рассматривал квест "FreeformRiften22"

 

не очень понятно, шо таке "квестовая переменная". Пример приведи, если можно. Глобальная же переменная это отдельный объект, который создается (как НПС, статика или любой другой объект). Найти можно в Miscellaneous -> Global :

 

 

Обрати внимание, что в поле Conditions диалога условие выглядит как GetGlobalValue, а не как в папирусе GetValue().

 

Приветствую.

Ты мне и здесь помогаешь. Большая благодарность :)

С созданием глобальной переменной я уже разобрался вчера.

Да, действительно в условии Conditions вставлено GetGlobalValue

У этих Беседчиков на Creation Kit всё запутано и криво сделано)) В отличии от ТЕС4 :) Зато есть сцены.

 

Так вот... Квестовая переменная - я имею в виду GetQuestVariable - поле во ВСЕХ дефолтных квестах остается пустым.

В ТЕС4 было всё просто. Там в скрипт квеста вставлялась переменная и она была включена в сам квест.

Так понятнее разъясняю?

 

 

Сообщение отредактировал Wolf4: 03 ноября 2015 - 10:53


#39 Ссылка на это сообщение Wolf4

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

Отправлено

Ещё такой малюсенький вопрос объявился.

 

Как заставить НПС взять в руку факел? Хоррор квест делаю)



#40 Ссылка на это сообщение Bolgarec75

Bolgarec75
  • Отверженный
  • 147 сообщений
  •    

Отправлено

Приветствую! Народ, снова прошу вашей помощи! Заметил у себя в игре такой неприятный баг - перестал работать котелок для приготовления пищи (для всех сохранений у всех персонажей). Может дело в скриптах? Прям не знаю, что делать, весь инет перерыл - инфы ноль :sad:


Мои приключения в Скайриме :)

 

Жил без страха и умер без страха...


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

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


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

Отправлено

 

Врядли, а чем вы этот котелок сломали?

 

Если новую игру начинать то тож самое?







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

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

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