Модератор форума: 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? Пиши не в ЛС, а в эту тему.
SoraSt  Offline  Сообщение №1501 написано: 25 марта 2015, 12:00



21
VALKNUT, во всем разобрался. Большое спасибо.

slastik  Offline  Сообщение №1502 написано: 5 апреля 2015, 13:49


Жаждущий


209
Подскажите как правильно оформить условие для скрипта, при котором определенный НПС должен находиться в определенной локации. Что-то вроде If MyNPC пребывает в локации MyCell. И как лучше его обозначить в Property - через ActorBase или через ObjectReference?

- Что это за горы стоят?
- А, это орки бегут!
Multigone  Offline  Сообщение №1503 написано: 5 апреля 2015, 14:01



832
slastik

1) IF MyREFR.IsInLocation(MyLOCA)

2) Через ObjectReference, т.к. этот тип форм использует функция IsInLocation(Location akLocation).

Dsion  Offline  Сообщение №1504 написано: 5 апреля 2015, 14:05



ActorBase никогда не существуют в мире...

sansuli  Offline  Сообщение №1505 написано: 5 апреля 2015, 14:32


The Red Sun


193
Вот проверка локации:

Задаешь локацию, которая тебе нужна в свойствах скрипта:
Location property Currloc auto

В функции пишешь проверку:
If Target.GetCurrentLocation() == Currloc ;или != если не равно
Target.Kill()
Else
Caster.Kill()
EndIf

или такую проверку:
If Target.IsInLocation(Currloc)
Target.Kill()
Else
Caster.Kill()
EndIf

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
slastik  Offline  Сообщение №1506 написано: 5 апреля 2015, 18:35 | Отредактировано: slastik - 5 апреля 2015, 18:38


Жаждущий


209
Всем спасибо. От меня + в репу. Будем пробовать :)
З.Ы. Странно, не могу репутацию повысить никому. Убрали чтоли такую возможность?

- Что это за горы стоят?
- А, это орки бегут!
anton  Offline  Сообщение №1507 написано: 12 апреля 2015, 15:20



362
Знаете ли вы такую анимацию персонажа в игре, которую можно безболезненно заменить на свою Idle анимацию так, чтобы потом можно было вызвать её на ГГ скриптом ?

А то ради одной анимации не охота FNIS использовать  unsure

Мой Блог
sansuli  Offline  Сообщение №1508 написано: 18 апреля 2015, 12:34


The Red Sun


193
Ну раз есть анимация в игре, то она используется где-то, даже если хоть раз. Сам посмотри в Ките, какая игрокам не нужна)

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Brujah  Offline  Сообщение №1509 написано: 25 апреля 2015, 14:29



860
Можно ли с помощью скрипта активировать консольную команду? Грубый пример: игрок прыгнул-активируется TGM 1, игрок приземлился-TGM 0.

Shrinks make you mad
Pills make you dead
Religions kill your soul
Bills will eat you whole
-
Schools make you dumb
Culture makes you numb
Lawyers free the scum
Justice for you - none
Multigone  Offline  Сообщение №1510 написано: 25 апреля 2015, 15:48



832
Brujah, для тех консольных команд, которые имеют соотв. Papyrus-версии, очевидно, да. Для команд, не имеющих соотв. Papyrus-версий, полагаю, нет.

TGM не имеет альтернативы в Papyrus, но сделать игрока неуязвимым можно и др. способами.

Brujah  Offline  Сообщение №1511 написано: 25 апреля 2015, 18:21



860
Multigone, а TFC имеет альтернативу в Papyrus?
Похоже придется копать в SKSE. Все как всегда очень сложно.

Shrinks make you mad
Pills make you dead
Religions kill your soul
Bills will eat you whole
-
Schools make you dumb
Culture makes you numb
Lawyers free the scum
Justice for you - none
Multigone  Offline  Сообщение №1512 написано: 25 апреля 2015, 18:49 | Отредактировано: Multigone - 25 апреля 2015, 19:07



832
Brujah, как видишь, нет.

ЗЫ: По поводу TGM - внезапно, есть функция.

Dsion  Offline  Сообщение №1513 написано: 25 апреля 2015, 21:37



Brujah, есть функция для перемещения камеры на другой объект. И скрипты могут управлять движением этого объекта. Вот только по поводу WASD не знаю.

Brujah  Offline  Сообщение №1514 написано: 26 апреля 2015, 04:23



860
Dsion, а можно ли как-нибудь "открыть" TFC? В CK или еще где. Мне нужно посмотреть из чего он состоит.

Shrinks make you mad
Pills make you dead
Religions kill your soul
Bills will eat you whole
-
Schools make you dumb
Culture makes you numb
Lawyers free the scum
Justice for you - none
Dsion  Offline  Сообщение №1515 написано: 26 апреля 2015, 07:16



Ничего такого нигде не видел...

sansuli  Offline  Сообщение №1516 написано: 27 апреля 2015, 09:34 | Отредактировано: sansuli - 27 апреля 2015, 09:36


The Red Sun


193
Цитата Brujah

TFC имеет альтернативу в Papyrus?

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

Можно сделать летающую камеру через управление другими актерами, к примеру призвать кого-нибудь, сделать его невидимым, установить на нем камеру и управление, но центром мира все равно останется тело ГГ (Главного героя), так что если далеко уйдешь, то увидишь лоды вблизи (незагруженные ячейки). Этот способ почти аналогичен Toggle Fly Camera.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Brujah  Offline  Сообщение №1517 написано: 29 апреля 2015, 16:38



860
sansuli, нет, это не то, что мне нужно. У TFC есть другая интересная особенность, которую я хотел использовать для нового мода.
Все равно спасибо за ответы.

Shrinks make you mad
Pills make you dead
Religions kill your soul
Bills will eat you whole
-
Schools make you dumb
Culture makes you numb
Lawyers free the scum
Justice for you - none
Dsion  Offline  Сообщение №1518 написано: 29 апреля 2015, 16:56



Ответы были бы полезнее, если бы ты объяснил, чего хочешь... Если допустимо использование SKSE, то можно полностью повторить tfc.

VALKNUT  Offline  Сообщение №1519 написано: 4 мая 2015, 16:23



Всем привет!
Ребята, что-то я делаю не так, но задача простейшая..

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

Scriptname ххххххх extends ObjectReference

MagicEffect Property Flames  Auto  
Keyword Property MagicDamageFire  Auto  

Event OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect)
    if akEffect.HasKeyword(MagicDamageFire)
            Self.Disable()
            ;Debug.MessageBox("Выключено")
    endif
EndEvent


Что подскажете?

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Dsion  Offline  Сообщение №1520 написано: 4 мая 2015, 18:18 | Отредактировано: Dsion - 4 мая 2015, 18:19



Магические эффекты только на акторов могут накладываться... Может, потому и не работает. Или не потому... Я не проверял, честно говоря.
В любом случае, ивент OnHit должен работать. Там тоже можно проверить, чем именно ударили объект.

VALKNUT  Offline  Сообщение №1521 написано: 4 мая 2015, 18:25



Цитата Dsion

В любом случае, ивент OnHit должен работать. Там тоже можно проверить, чем именно ударили объект.

Да, я уже на этом эвенте сделал.. Но все равно благодарю...

Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ
<a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Multigone  Offline  Сообщение №1522 написано: 5 мая 2015, 09:06



832
Dsion, маг. эффекты могут накладываться на некоторые объекты, если поставить архетип Scripts.

Ronolus  Offline  Сообщение №1523 написано: 5 мая 2015, 10:09 | Отредактировано: Ronolus - 5 мая 2015, 10:09



71
всем доброго времени суток! не подскажите, возможно ли в скрипте определить тип урона и количество здоровья, отнятое этим уроном?

Multigone  Offline  Сообщение №1524 написано: 5 мая 2015, 10:48 | Отредактировано: Multigone - 5 мая 2015, 11:06



832
Цитата Ronolus

количество здоровья, отнятое этим уроном


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

Пример:

Float fV = MyActor.GetAV("Health")

Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack,
bool abHitBlocked, Form akWeapon)
    Float fD = MyActor.GetAV("Health") - fV
; переменная fD показывает величину изменения здоровья до и после воздействия.
    IF fD < 0.0 ; разница здоровья отрицательна, значит, получает урон.
    ELSE ; неотрицательна, значит, лечится (или без изменения).
    ENDIF
    fV +=
 fD

Ronolus  Offline  Сообщение №1525 написано: 5 мая 2015, 11:08



71
эвент onhit срабатывает уже после нанесения урона?

Multigone  Offline  Сообщение №1526 написано: 5 мая 2015, 11:17



832
Ronolus, в момент нанесения.

GF_RaiseD  Offline  Сообщение №1527 написано: 9 мая 2015, 21:11 | Отредактировано: GF_RiseD - 9 мая 2015, 21:10



50
Всем привет! Я пытаюсь обновить свой мод, но столкнулся с проблемой, которую не знаю как решить: к алхимическим лабораториям и доскам зачарований я прикрепил некий скрипт, открывающий вот такое вот окно:



Игрок выбирает чего он хочет и в зависимости от его выбора должно открываться меню алх. лаборатории или меню другого workbench, ничем не отличающегося внешне. Так вот. Подскажите пожалуйста как бы можно было такое реализовать. Как форсануть игру открыть другое меню или как изменить свойства текущего воркбэнча или как временно скрыть текущий воркбенч и создать нужный мне и заставить довакина сразу же его активировать. Подскажите наиболее оптимальный метод решения этого вопроса. П.С. (в ките пишет "Отравить стрелы". не пойму отчего так).

Добавлено (10 Мая 2015, 00:11)
---------------------------------------------
Или дайте ссылки на моды, в которых делали что-либо подобное. Благодарю за внимание.


Dsion  Offline  Сообщение №1528 написано: 9 мая 2015, 22:11



GF_RiseD, картинка нифига не отображается... Какое там окно? И что за скрипт? Event OnActivate?
Я бы не трогал ванильные объекты. Можно попробовать сделать перк с "Add Activate Choice". При активации воркбенча игроку будет вываливаться выбор. Для выбора можно использовать стандартное окошко или сделать своё собственное.
Если игроку нужно активировать не стандартный воркбенч, то можно просто засунуть его в проперти и вызывать методом Activate. Будет открываться меню крафта даже если воркбенч на другом конце света.

GF_RaiseD  Offline  Сообщение №1529 написано: 9 мая 2015, 22:20 | Отредактировано: GF_RiseD - 9 мая 2015, 22:31



50

Оу. Чудесно же. Я хочу потестить. Пожалуйста опишите подробней как это вызывать методом "Activate". Скорее всего-это то что нужно. Мое собственное окошко. Позволяет выбрать действие при активации воркбенча. Ивент - при активации, да. Нужно вызвать нестандартный воркбенч. А, все. Вроде нашел.

Dsion  Offline  Сообщение №1530 написано: 9 мая 2015, 22:50



Поставить где-то свой воркбенч. Засунуть его в какую-то проперти скрипта. Пусть будет Bench. А потом вот так активировать из любого места:
Bench.Activate(Game.GetPlayer())
С сундуками тоже работает, если нужно будет... Можно, к примеру, сделать простенькое заклинание, открывающее из любого места сундук, стоящий дома.
С "Add Activate Choice" тоже желательно разобраться... Это лучше, чем редактировать ванильные объекты.

Добавлено (10 Мая 2015, 01:50)
---------------------------------------------
Картинка так и не открылась. Может, я воще не так всё понял.


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





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