Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)

Вопросы по скриптам Papyrus
sansuli  Offline  Сообщение №1 написано: 31 августа 2012, 13:29 | Отредактировано: Multigone - 23 апреля 2020, 14:24


The Red Sun


193
Уроки по скриптованию на языке Papyrus
Прежде чем задать вопрос просмотрите вышеуказанные уроки.
ok


Тема регламентирована.


• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней.
• Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней.
• При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС.
• При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "
+" полезного сообщения.

Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Multigone  Offline  Сообщение №1591 написано: 13 июня 2015, 09:59



831
Arin, IsRaining. Теоретически - проверяет каждую секунду, соответствует ли погода типу Rainy, указанному в Weather -> Precipitation.

Цитата Arin

Скорее всего она просто вызывает дождь.


Функции Conditons могут только проверять к.-л. условия.

Arin  Offline  Сообщение №1592 написано: 13 июня 2015, 10:05 | Отредактировано: Arin - 13 июня 2015, 10:08



570
Цитата Multigone

Arin, IsRaining. Теоретически - проверяет каждую секунду, соответствует ли погода типу Rainy, указанному в Weather -> Precipitation.

То есть это булево и можно сделать проверку на истину/ложь? А то у меня сейчас новый подарочек - сайт с информацией по Папирусу отрубился....

А все... ИсРайнин можно выставлять в условиях без скрипта.

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Arin  Offline  Сообщение №1593 написано: 13 июня 2015, 10:10 | Отредактировано: Arin - 13 июня 2015, 10:16



570
Ладно, перейдем к следующему вопросу Х) Копаюсь в квесте на усыновление детей. При разговоре с бездомным ребенком, когда предлагаешь дом, есть скрипт, суть которого осталась мне непонятна.
;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
;Initial house will be in Whiterun...
akSpeaker.SetAV("Variable07", 8)
;END CODE
EndFunction
;END FRAGMENT

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

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Multigone  Offline  Сообщение №1594 написано: 13 июня 2015, 10:24



831
Arin, если мне не изменяет память, она не работает. Когда мне нужно было делать проверку через условия, я пользовался, как уже подсказывал Dsion, GetIsCurrentWeather. Однако предусмотреть проверку погоды, добавляемой модами, в этом случае невозможно. Плюс для каждой ванильной нужно делать свою проверку (- быстродействие). Например:


Но ты проверь все же.

Multigone  Offline  Сообщение №1595 написано: 13 июня 2015, 10:37 | Отредактировано: Multigone - 13 июня 2015, 10:55



831
Arin, это ActorValue, хранящее опред. информацию о актере, такую, как здоровье, сопротивление магии и проч. Очевидно, эта переменная отвечает за состояние актера, как "усыновлен игроком" (может, и ошибаюсь). Значит, чтобы добиться такого же состояния, нужно повторить эту команду в своем диалоге.

Однако, вот что говорится по этому поводу в вики:



AV нельзя создавать, только использовать.

Arin  Offline  Сообщение №1596 написано: 13 июня 2015, 10:46 | Отредактировано: Arin - 13 июня 2015, 10:54



570
Цитата Multigone

Arin, это ActorValue, хранящее опред. информацию о актере, такую, как здоровье, сопротивление магии и проч. Очевидно, эта переменная отвечает за состояние актера, как "усыновлен игроком" (может, и ошибаюсь). Значит, чтобы добиться такого же состояния, нужно повторить эту команду в своем диалоге. AV нельзя создавать, только использовать.

Хм.. Дело в том, что там разные значения условий. Не просто ("Variable07", 8), а у разных домов может быть: ("Variable07", 7), ("Variable07", 4) И тд... Вот я и пытаюсь понять, что они значат, если у каждой локации уникальный номер.. Вы не подскажете, где можно эти "Variable" посмотреть.

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Multigone  Offline  Сообщение №1597 написано: 13 июня 2015, 10:54



831
Arin, возможно, на детей навешаны пакеты, которые проверяют эту переменную, и, в зависимости от ее значения, отсылают ребенка в указанный в одном из этих пакетов дом. Хз.

Arin  Offline  Сообщение №1598 написано: 13 июня 2015, 10:57 | Отредактировано: Arin - 13 июня 2015, 10:58



570
Цитата Multigone

Arin, возможно, на детей навешаны пакеты, которые проверяют эту переменную, и, в зависимости от ее значения, отсылают ребенка в указанный в одном из этих пакетов дом. Хз.

Тогда попробую проверить условия пакетов. Спасибо, что подсказали.
А Вы случайно не знаете, что влияет на телепортацию лошади к маркеру лошади?) А то у меня что-то она не работает О_о Надеюсь, это не из-за дефолтной карты высот, что-то не хочется её переделывать...

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Multigone  Offline  Сообщение №1599 написано: 13 июня 2015, 11:07



831
Arin, если телепортация осуществляется не с помощью MoveTo(), то не знаю. Если с помощью, тогда проблем быть не должно.

Arin  Offline  Сообщение №1600 написано: 13 июня 2015, 11:10 | Отредактировано: Arin - 13 июня 2015, 11:11



570
Цитата Multigone

Arin, если телепортация осуществляется не с помощью MoveTo(), то не знаю. Если с помощью, тогда проблем быть не должно.

Даже не представляю О_о Там не без скриптов все. В локации экстерьера выбираешь маркер лошади (так и зовется Horse marker), выбираешь мап-маркер, и при телепортации по мап-маркеру лошадь должна была телепортироваться к лошадиному маркеру... Раньше у меня это работало, а тут не хочет. Может быть, по старой карте высот место слишком бугристое, но у меня не получается её делать, поэтому я очень надеюсь, что проблема в другом.

В любом случае, спасибо за попытку помочь)

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Dsion  Offline  Сообщение №1601 написано: 13 июня 2015, 11:47



Проверил IsRaining - работает.

Arin  Offline  Сообщение №1602 написано: 13 июня 2015, 13:15



570
Уважаемые, напомните, пожалуйста, как переименовывать скрипты.

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Multigone  Offline  Сообщение №1603 написано: 13 июня 2015, 13:45



831
Dsion, отлично, придется кое-что переделать.

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

Arin  Offline  Сообщение №1604 написано: 13 июня 2015, 14:12 | Отредактировано: Arin - 13 июня 2015, 14:56



570
Цитата Multigone

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

Нет, я имела в виду переименования файла прямо в СК. Я точно когда-то это делала, но я полгода не занималась модами и забыла Х(

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Dsion  Offline  Сообщение №1605 написано: 13 июня 2015, 14:48



Вряд ли есть штатный способ переименования скриптов. Имя скрипта - это как имя класса в С++. Как тип переменной, если хотите. ObjectReference, Actor - это всё имена скриптом. Переименуем скрипт ObjectReference и тысячи других скриптов перестанут компилироваться.

slastik  Offline  Сообщение №1606 написано: 13 июня 2015, 22:07


Жаждущий


209
Цитата Arin

Нет, я имела в виду переименования файла прямо в СК. Я точно когда-то это делала, но я полгода не занималась модами и забыла Х(

Это можно делать только когда прикручиваете скрипт к топику в диалогах. Там есть кнопочка Rename Script.

- Что это за горы стоят?
- А, это орки бегут!
Multigone  Offline  Сообщение №1607 написано: 16 июня 2015, 11:02



831
Нужна ссылка на нормальный декомпилятор. Точно знаю, что мне ее давали в этом разделе в какой-то теме. Но я листал-листал, что-то не нашел.

nepewka  Offline  Сообщение №1608 написано: 16 июня 2015, 11:21



255
Всем привет  :)
рад видеть, что тема жива и процветает в ожидании 6 свитков.

У меня вопрос насчет магического эффекта яда, который наносится на оружие с помощью алхимических зелий.
Проблема в том, что он наносится только на 1 удар.

Если ли какая нибудь возможность с помощью кита или же скриптов для нанесения яда на большее кол-во времени или же бесконечно?

Заранее спасибо!

Dsion  Offline  Сообщение №1609 написано: 16 июня 2015, 12:09



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

Dsion  Offline  Сообщение №1610 написано: 16 июня 2015, 12:16



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

nepewka  Offline  Сообщение №1611 написано: 16 июня 2015, 13:33



255
Цитата Dsion

Ну или можно наделать кастомных ядов с любой длительностью действия


а причем там вообще длительность действия если они спадают с оружия после первого удара?
их Duration мало на что влияет

Добавлено (16 Июня 2015, 16:33)
---------------------------------------------
я имею ввиду длительность эффекта, который висит на нашем оружии.
То что можно сделать длительность яда over time который вешает на врага при ударе это понятно, а как сделать так ЧТОБЫ после первого удара по врагу, яд не снимался с нашего оружия, а оставался дальше..?

есть идеи?


Dsion  Offline  Сообщение №1612 написано: 16 июня 2015, 14:53



Цитата nepewka

я имею ввиду длительность эффекта, который висит на нашем оружии.


я тоже. про это и написал.

nepewka  Offline  Сообщение №1613 написано: 16 июня 2015, 15:03



255
Цитата Dsion

я тоже. про это и написал.


и как же предлагаешь это сделать?

Dsion  Offline  Сообщение №1614 написано: 16 июня 2015, 15:18



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

Multigone  Offline  Сообщение №1615 написано: 16 июня 2015, 15:36 | Отредактировано: Multigone - 16 июня 2015, 15:37



831
nepewka, если я правильно понял, тебе нужно увеличить кол-во ударов, на которые хватит одного (любого) пузырька яда. Ванильное значение - на один удар; с перком ConcentratedPoison - на 2 удара. За изменение этой величины отвечает Entry Point -> Mod Poison Dose Count. Вроде все.

PS: Декомпилятор все еще нужен мне.

Dsion  Offline  Сообщение №1616 написано: 16 июня 2015, 16:21



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

nepewka  Offline  Сообщение №1617 написано: 16 июня 2015, 16:59



255
Цитата Multigone

nepewka, если я правильно понял, тебе нужно увеличить кол-во ударов, на которые хватит одного (любого) пузырька яда. Ванильное значение - на один удар; с перком ConcentratedPoison - на 2 удара. За изменение этой величины отвечает Entry Point -> Mod Poison Dose Count.


Браво! В точку!

Уточни, декомпилятор какой нужен?

Multigone  Offline  Сообщение №1618 написано: 16 июня 2015, 17:17



831
nepewka, скриптов из .pex в .PSC

Dsion, я пытался (EquipItem()), без сообщения не получается. Как же?

nepewka  Offline  Сообщение №1619 написано: 16 июня 2015, 18:33



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

как мы знаем, игрок замедляется вместе с общим течением времени. Но можно ли сделать так, чтобы игрок во время этого замедления двигался и атаковал с нормальной скоростью?

покопавшись в вики нашел это:
http://www.creationkit.com/Magic_Effect#Effect_Archetypes

Slow Time   Slows time for all but the player by the indicated amount (a multiplier, with 1 being normal time).

Тут пишут про Multiplier где задается замедление времени для игрока. Но что это за Multiplier и где он находится?
если в магнитуде задаем замедление времени для всех, то где же для игрока?

Dsion  Offline  Сообщение №1620 написано: 16 июня 2015, 19:20



Я плохо помню... Но разве игрок замедляется? Именно крик я не пробовал, но делал своё заклинание с замедлением времени и даже полной остановкой.
Помню, что выпущенные стрелы и огненные шары просто висели в воздухе и никуда не летели... Но не помню, чтоб замедлялся игрок...

Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Поиск:





Ответ на жалобу смотрите в разделе жалоб