• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней. • Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней. • При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС. • При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "+" полезного сообщения.
Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.
Красное солнце Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Всем привет В игре пишет вот такую штуку, при каждом входе. Detected script at PlayerVampireQuestScript.pex Do you want to display this massage again. Может подскажите что делать?
Добрый вечер всем, прошу помощи, нужно написать скрипт для тригера при котором если в трегер поместить череп, то нпс умирает(не главный герой) это скрипт при котором гг является активатором, а нужно чтоб был череп Scriptname THHDeatScript02 extends ObjectReference
ObjectReference Property TrigerThhDeathSkull Auto
ObjectReference Property SkullIfTriger01 Auto
Actor Property ActorThhDeath01 Auto
Event OnTriggerEnter(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() ActorThhDeath01.Kill() EndIf
Myprism,у меня есть бассейн, при помощи скрипта на свет сделал чтобы, работал водопад, и появлялась вода. Но мне нужно чтобы вода повышалась как при квесте про глаз фалмера, когда вода затапливала пещеру
fanat01, а проблема в чём? Ваш скрипт должен чем-то запускаться. Значит, он должен быть куда-то встроен. От этого зависит сам тип скрипта. У вас есть квест, в котором это уже сделано. Я сначала хотел отправить вас к своему моду, где сделано то же самое, но лучше возьмите в качестве примера ванильный квест. Если соберётесь делать свой квест, в котором будет меняться уровень воды, то просто перенесите фрагмент кода из того квеста в свой. Если собираетесь вешать скрипт на что-то ещё, то делайте соответствующий скрипт и переносите код в него. Скорее всего он и так сгодится, но не обязательно. Это зависит от типа скрипта.
Изменение репутации для пользователя akigami
akigamiOffline
Сообщение №2738
написано: 11 апреля 2019, 12:11
| Отредактировано: akigami - 11 апреля 2019, 12:14
Dsion, большое спасибо 3 дня бьюсь и как то не додумался до этого) да, при обращении к npc у него появляется диалог и при ответе нпс на этот диалог он должен попасть в группу, вариант с фракцией мне подошел больше, но появилась проблема, при компиляции кода:
Код
akSpeaker.AddToFaction(TFFaction)
вылетает ошибка:
Starting 1 compile threads for 1 files... Compiling "TIF__0000080A"... D:\Program Files (x86)\The Elder Scrolls 5.Skyrim.Legendary Edition.v 1.9.32.0.8 + 4 DLC\Data\Scripts\Source\temp\TIF__0000080A.psc(9,23): variable TFFaction is undefined No output generated for TIF__0000080A, compilation failed.
Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on TIF__0000080A
код вставляется в ответ диалога и должен слушателя добавлять в заранее созданную фракцию TFF, вроде бы все верно
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №2741
написано: 11 апреля 2019, 13:41
| Отредактировано: Dsion - 11 апреля 2019, 13:54
akigami, наверное, не создал property TFFaction. А когда создашь, нужно еще не забыть заполнить.
Я уже плохо помню, но там, вроде, можно клацнуть по скрипту (TIF_??) правой кнопкой, выбрать что-то там про Properties, а потом нужно создать новую и заполнить (Fill). Тип: Faction. Если просто создать (но забыть заполнить), скрипт скомпилируется, но работать не будет.
Изменение репутации для пользователя akigami
akigamiOffline
Сообщение №2742
написано: 11 апреля 2019, 14:57
| Отредактировано: Multigone - 21 апреля 2020, 20:27
akigami, не припоминаю такого... В крайнем случае, можно добавить глобальную переменную (типа TFFactionMemberCount). Когда добавляешь кого-то во фракцию, прибавляешь 1 к значению переменной. Убираешь из фракции - отнимаешь 1. Тогда можно будет использовать условие GetGlobalValue TFFactionMemberCount < 2
Доброго времени суток. Появился такой вопрос, в квесте есть два ответа и один из них должен давать книгу, как должен выглядеть скрипт для выдачи этой книги? Пытался через : Game.GetPlayer().AddItem() и в пропертис добавить книгу в качестве предмета, но не получилось.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №2745
написано: 4 мая 2019, 01:01
| Отредактировано: Dsion - 4 мая 2019, 01:03
День добрый, друзья. Не могу решить проблемку. Есть активатор, который стоит в интерьере и должен постоянно воспроизводить звук. Есть саунд-дескриптор, в который забиты 10 звуковых дорожек. Если просто сделать саунд-маркер и поставить в интерьер или же просто в окне активатора задать ему наш дескриптор, чтобы он гонял его по кругу, то при таком варианте постоянно воспроизводится лишь один трек из десяти. Мне нужно, чтобы рандомно воспроизводились разные треки, поэтому решил сделать, как мне показалось, простой скрипт.
Event onLoad() PlayMySound() EndEvent
Function PlayMySound() While Self.is3DLoaded() Sound01.PlayAndWait(Self) EndWhile EndFunction
Вот вроде бы при загрузке объекта должна запускаться функция, которая гоняет музыку по кругу, пока модель объекта загружена. Если мы покидаем интерьер, то по идее модель выгружается и музыка прекращается. Но нет, при выходе наружу она продолжает играть, что не есть хорошо. Признаю, что совсем немного разбираюсь в скриптах и может это вовсе не так должно работать. Подскажите, как нужно сделать.
slastik, а без скрипта точно нельзя, да? Я пока не могу проверить... Лучше бы, конечно, без скрипта.
Не хочешь поискать ивент, который срабатывает в момент выхода игрока из локации? Можно проверить OnCellDetach() и OnDetachedFromCell(). Лучше запускать музыку в одном ивенте, а потом в другом останавливать по instance id.
Хрень в том, что в Скайриме не желательно писать функции, которые выполняются дольше одной секунды. Да и вообще, везде, где есть event loop (асинхронное программирование). Вернее, их лучше не вызывать в основном потоке. А, ладно, забудь.
Но если в Скайриме у тебя есть функция типа PlayMySound, которая выполняется дольше секунды, то что-то у тебя не так.
Лучше запускать музыку в одном ивенте, а потом в другом останавливать по instance id.
Вот в том и проблема, что если запустить музыку одним событием и оставить играть, пока мы ее не выключим, то она выберет случайный трек и зациклится на нем. Получается, что нужно ее каждый раз запускать заново, как бы искусственно с помощью скрипта создавая loop, и тогда она каждый раз запускает случайную дорожку.
Dsion, т.е. не закидывать 10 треков в один саунд, а сделать 10 саундов по одному треку в каждом и объединить в форм-лист? Ок, но как в этом случае добиться, чтобы скрипт постоянно воспроизводил случайные саунды из этого форм-листа, а не выбрал один саунд и гонял его по кругу?
Dsion, Есть ли возможность прописать в скрипт событие связанное со сменой локаций (а именно с загрузкой экранов)??? Смысл в том, чтобы ГГ\НПС снимал и надевал автоматом некий Armor, сразу после загрузочного экрана.
border="0" alt=""/
Изменение репутации для пользователя Иsкатель
ИsкательOffline
Сообщение №2754
написано: 9 июля 2019, 22:19
| Отредактировано: Иsкатель - 9 июля 2019, 22:21
подскажите, как сделать, чтобы алиас книги появлялся в инвентаре нпс и героя, а так же убирался. у меня 3 алиаса в квесте: ключ и 2 книги. ключ в инвентаре нпс и при определённой стадии квеста передаётся в инвентарь героя, одна книга поднимается и передаётся в инвентарь героя, а также из инвентаря героя в инвентарь нпс, и 3 книга должна быть в инвентаре нпс, но её там нет! хотя я помещаю как ключ указывая в нпс! (нпс алиас квеста)
Мне нужно, чтобы рандомно воспроизводились разные треки, поэтому решил сделать, как мне показалось, простой скрипт.
А это можно сделать еще смешнее - сделать НЕСКОЛЬКО саундмаркеров, каждый из которых воспроизводит ОДИН саунд, и дизейблить-энейблить их квестовым скриптом.
Добавлено (21 Октября 2019, 13:57) --------------------------------------------- Вопрос - можно ли сделать заклинание, меняющее высоту прыжка, не используя скриптовые функции SKSE?
valambar, думаю, для этого вообще скрипт не нужен. Просто изменить Actor Value "JumpingBonus". Но если увеличить слишком сильно, то будет та же проблема, что и с летанием - мир для этого не предназначен.
Просто изменить Actor Value "JumpingBonus". Но если увеличить слишком сильно, то будет та же проблема, что и с летанием - мир для этого не предназначен.
А какие настройки в магическом эффекте надо подкрутить? Я как-то пробовал, но изменения высоты прыжка не увидел.
Привет всем! Большое спасибо Сану за курс скриптологии. Вопрос: есть ли утилиты, способные склеивать пексы, то есть, их скрипты, автоматически. Так же, как, например, можно смержить в tes5edit, разные esp? Конкретная проблема: есть пекс с активатором манекенов. Есть много вариантов такого пекса, но нет идеального. Самый лучший, какой мне известен, позволяет сделать манекен живым со сменой поз циклически, дать манекену до 10 видов брони и оружия, и сменить ему расу. И вот тут появляется баг с потерей головы. Тело у манекена - живое, а голова - деревянная. Есть другой пекс-активатор, там всё пофиксено, расы сменяются корректно, но функционал у него - бедный. Только 5 видов брони, и никакой динамики. Хотелось бы их склеить, не влезая в дебри программирования скриптов. Я декомпилировал оба пекса, паскаль изучал, в принципе структура понятна, но сам вручную склеить пока не могу, не хватает знаний и опыта именно по скриптовому языку игры. Такое автоматическое склеивание - возможно? Спасибо. С уважением, маг Иридий.
С уважением. Маг Иридий.
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)