Модератор форума: 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? Пиши не в ЛС, а в эту тему.
Arhatt  Offline  Сообщение №1561 написано: 26 мая 2015, 14:39



8
Ребят, решил написать скрипт, чтобы во время боя НР регенилось при ношении какой то вещи, как вариант взял за основу скрипт с ULTRA маски, повырезал все ненужное, но что то блин не хочет работать скрипт, гляньте, мб чет не то вырезал ? Компилится нормально, без ошибок.
Scriptname ArhattDragonScript extends activemagiceffect  

actor property Arhatt auto hidden
spell property GrandHealing auto
float property HPthreshold auto

EVENT OnEffectStart(Actor Target, Actor Caster)

Arhatt = caster

endEVENT

EVENT onHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)

if (Arhatt.getActorValuePercentage("Health") < HPthreshold) && \
!(Arhatt.isDead())
GrandHealing.cast(Arhatt,Arhatt)
endif
endEVENT

Dsion  Offline  Сообщение №1562 написано: 27 мая 2015, 10:18 | Отредактировано: Dsion - 27 мая 2015, 10:19



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

Arhatt  Offline  Сообщение №1563 написано: 28 мая 2015, 15:36 | Отредактировано: Arhatt - 28 мая 2015, 15:38



8
Хочу, что бы срабатывал эффект, в данном случае хил, когда НР достигает определенного значения! Я думаю, мб переменную на int заменить и прописать значение, ну скажем 50. Сработает?

Dsion  Offline  Сообщение №1564 написано: 28 мая 2015, 16:30



А откат хила? КД?

Arhatt  Offline  Сообщение №1565 написано: 29 мая 2015, 15:27 | Отредактировано: Arhatt - 29 мая 2015, 15:50



8
Можно поставить в условиях, не испытывает этого эффекта. !(Arhatt.HasSpell(GrandHealing)

Dsion  Offline  Сообщение №1566 написано: 29 мая 2015, 15:45



Можно и по времени КД сделать...
Продумай всё круто, а там уж запилим...

Arhatt  Offline  Сообщение №1567 написано: 29 мая 2015, 16:07 | Отредактировано: Arhatt - 29 мая 2015, 16:08



8
Да я уже придумал) Тестирую на отхиле. Идея в том, что бы создать бижу, которая будет давать эффекты при снижении НР, какая отхил небольшой, какая берса(дамаг с двуручного оружия), какая броню типа как УД у танка в линейке. Вот вырвал из ULTRA скрипт, но после редактирования он че то не хочет работать, хотя вроде вырезал ненужное аккуратно. Внес все именения в рабочий скрипт, буду тестить сейчас.

Dsion  Offline  Сообщение №1568 написано: 29 мая 2015, 16:25



Если эффект должен быть постоянным при низком уровне ХП, то можно и без скрипта...
А если один раз срабатывать, то надо же откат запилить.

Arhatt  Offline  Сообщение №1569 написано: 29 мая 2015, 16:29 | Отредактировано: Arhatt - 29 мая 2015, 18:47



8
Да эфект должен быть временным для скилов на дамаг. Но тот же хил имеет время каста, в моем случае и этого бы хватило для теста, но он не пашет. Скрипт отката не видел еще. Подскажешь?

slastik  Offline  Сообщение №1570 написано: 1 июня 2015, 10:52 | Отредактировано: slastik - 1 июня 2015, 10:53


Жаждущий


209
Всем привет. Возникла следующая проблемка. Хочу сделать зелье, которое при использовании будет оставлять маркер для быстрого перемещения на карте в текущем месте пребывания ГГ, а при повторном использовании будет его убирать. Для этого создал готовый MapMarker, поместил его в игровой мир, выставил на нем галочку IsDisabled, а к зелью привязал скрипт:

Event OnEffectStart(Actor akTarget, Actor akCaster)
If MyMarker.IsDisabled()
MyMarker.MoveTo(Game.GetPlayer())
MyMarker.Enable()
Else
MyMarker.Disable()
EndIf
EndEvent


Скрипт прекрасно скомпилировался, но результата никакого. Тогда убрал галочку IsDisabled и сделал обычный MapMarker, спрятав его в один из интерьеров, а скрипт сократил до:

Event OnEffectStart(Actor akTarget, Actor akCaster)
MyMarker.MoveTo(Game.GetPlayer())
EndEvent


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

- Что это за горы стоят?
- А, это орки бегут!
Multigone  Offline  Сообщение №1571 написано: 5 июня 2015, 22:43



832
slastik, после скидывания в окно рендера у референса MapMarker'а не включена вкладка Marker Data (около 3D Data). Может, дело в этом?

slastik  Offline  Сообщение №1572 написано: 5 июня 2015, 23:01


Жаждущий


209
Multigone, включена и настроена.

- Что это за горы стоят?
- А, это орки бегут!
Multigone  Offline  Сообщение №1573 написано: 6 июня 2015, 18:55 | Отредактировано: Multigone - 6 июня 2015, 19:53



832
slastik, повторил твои шаги:

1) Скрипт привязал к заклинанию.


2) Указал Property.
3) Настроил маркер, кроме Marker Data ничего не трогал.





Изначально маркер спрятан. После использования заклинания он появляется у ног игрока. Быстрое перемещение сделать можно. Повторное использование прячет его. В общем, работает так, как требовалось. Значит, ты что-то упустил.

UPD: Работает только на мировой карте (в интерьерах нет). Я вообще не понял, как отмечать что-то на локальной.

Arin  Offline  Сообщение №1574 написано: 8 июня 2015, 18:02



570
Уважаемые, подскажите, пожалуйста, какая функция нужна, чтобы прописать действие "при вхождении в зону триггера", а то вспомнить не получается, а найти не могу...

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



832
Arin

Event OnTriggerEnter(ObjectReference akActionRef)

Arin  Offline  Сообщение №1576 написано: 9 июня 2015, 03:05 | Отредактировано: Arin - 9 июня 2015, 03:32



570
Спасибо!
Мда... Появился еще один вопрос. Программа отказывается создавать новые скрипты. Гавкает: The extends scpript does nor exist, please pick one thet does. Ей расширение SCSE нужно что ли? Оо Вроде раньше не требовалось. Программу переустановила, проверила кэш, все равно гавкает..

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



Может, его действительно нету. Расширяемый скрипт должен быть в ./data/scripts/source/

Arin  Offline  Сообщение №1578 написано: 9 июня 2015, 04:50 | Отредактировано: Arin - 9 июня 2015, 04:53



570
Цитата Dsion

Может, его действительно нету. Расширяемый скрипт должен быть в ./data/scripts/source/

Так, поставим вопрос по-другому (я, к сожалению, сейчас не могу глянуть, что там у меня в этой папке). Расширяемый скрипт должен был появится вместе со Скайримом или вместе с СК? Просто я, хоть убейте, не помню, чтобы СК нужны были какие-то дополнения, кроме самой игры. Может быть я что-то удалила и теперь мне нужно проверить кэш Скайрима, так как переустановка СК ничего не дала? Оо

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



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

Arin  Offline  Сообщение №1580 написано: 9 июня 2015, 10:40



570
Цитата Multigone

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

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

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



Можешь называть это "недостающие файлы", если совесть не мирится со словом "пиратка"...
Я не в курсе, в чем проблема. Может, вовсе и не в отсутствии файлов. Хорошо бы сначала уяснить, какой именно скрипт расширяется и проверить его наличие в упомянутой папке.

Arin  Offline  Сообщение №1582 написано: 9 июня 2015, 15:16 | Отредактировано: Arin - 9 июня 2015, 15:21



570
Ха-ха, глянула на файлы, которых не доставало, и поняла чьи кривые руки их удалили... А я-то думала, что это распакованные мной файлы..

Только теперь СК вообще не запускается О_о Не выдает ошибки, просто не запускается... Пишет "Подготовка к запуска СК" и не запускается..

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



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

Arin  Offline  Сообщение №1584 написано: 9 июня 2015, 16:48



570
Цитата Multigone

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

Поставила пиратку на место лицензии, проверила файлы кэша... Правда, я сейчас опять пиратку поставила, но проверять кэш не стала. Теперь все работает..Ну, и фиг с ней с пираткой, не Скайрим же. Сорри за вызванное беспокойство.

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



832
Цитата Arin

не Скайрим же

No-Steam Скайрим работает ничуть не хуже, чем лицензионный, уверен. А СК даже лучше.

Aksyonov  Offline  Сообщение №1586 написано: 10 июня 2015, 07:09



937
Цитата Multigone

А СК даже лучше


Полностью согласен, была помню ошибка по декомпиляции скриптов в лицензии никак не мог решить, пришлось установить Creation kit иной сборки, и все заработало идеально.

slastik  Offline  Сообщение №1587 написано: 11 июня 2015, 14:31


Жаждущий


209
Цитата Multigone

UPD: Работает только на мировой карте (в интерьерах нет).

Спасибо. Все переделал заново и заработало. Видимо, проблема была именно в том, что я прятал маркер в интерьере.

- Что это за горы стоят?
- А, это орки бегут!
Arin  Offline  Сообщение №1588 написано: 13 июня 2015, 06:58



570
Доброго времени суток. Вы не подскажете, есть ли скрипт на определение погоды? Без SCSE. Просто я хочу написать пакет, чтобы во время дождя собака пряталась в конюшне.

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



Для скриптов есть функция
Weather currentWeather = Weather.GetCurrentWeather()

Но тебе, скорее, нужно не это, а Condition:
GetIsCurrentWeather - проверяет, соответствует ли погода выбранной
или
IsRaining - идет ли дождь (не проверял).
Эти условия можно просто на пакет вешать.

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



570
Цитата Dsion

IsRaining

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

ЗЫ: напокала немного.. Написано, что это функция. Скорее всего она просто вызывает дождь.

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Поиск:





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