Вверх Вниз


  • Страница 98 из 98
  • «
  • 1
  • 2
  • 96
  • 97
  • 98
Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Вопросы по скриптам Papyrus
sansuli  Offline Сообщение №1 написано: 31 Августа 2012 в 17:29 | Отредактировано: sansuli - Пятница, 17 Апреля 2015, 21:08


The Red Sun


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

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
akigami  Offline Сообщение №2911 написано: 11 Апреля 2019 в 16:33


Странник


4
Цитата Dsion ()
Dsion

Большое спасибо     3 дня бьюсь и как то не додумался до этого)
да, при обращении к npc у него появляется диалог и при ответе нпс на этот диалог он должен попасть в группу, вариант с фракцией мне подошел больше, но появилась проблема, при компиляции кода:

Код
akSpeaker.AddToFaction(TFFaction)

вылетает ошибка:



код вставляется в ответ диалога и должен слушателя добавлять в заранее созданную фракцию TFF, вроде бы все верно

Dsion  Offline Сообщение №2912 написано: 11 Апреля 2019 в 16:41 | Отредактировано: Dsion - Четверг, 11 Апреля 2019, 16:54



1260
akigami, наверное, не создал property TFFaction. А когда создашь, нужно еще не забыть заполнить.

Я уже плохо помню, но там, вроде, можно клацнуть по скрипту (TIF_??) правой кнопкой, выбрать что-то там про Properties, а потом нужно создать новую и заполнить (Fill). Тип: Faction. Если просто создать (но забыть заполнить), скрипт скомпилируется, но работать не будет.

akigami  Offline Сообщение №2913 написано: 11 Апреля 2019 в 17:57 | Отредактировано: akigami - Пятница, 12 Апреля 2019, 17:46


Странник


4
Цитата Dsion ()
Dsion


Да, оказалось ошибка была в этом, еще раз спасибо good

Добавлено (12 Апреля 2019, 17:45)
---------------------------------------------
Цитата Dsion ()
Dsion


Возможно ли ограничить кол-во членов фракции до 2-х ? например если 2 члена есть уже то диалога позвать в фракцию не будет

Dsion  Offline Сообщение №2914 написано: 12 Апреля 2019 в 18:29



1260
akigami, не припоминаю такого... В крайнем случае, можно добавить глобальную переменную (типа TFFactionMemberCount).
Когда добавляешь кого-то во фракцию, прибавляешь 1 к значению переменной. Убираешь из фракции - отнимаешь 1.
Тогда можно будет использовать условие GetGlobalValue  TFFactionMemberCount  < 2

akigami  Offline Сообщение №2915 написано: 12 Апреля 2019 в 20:42


Странник


4
Цитата Dsion ()
Dsion

Спасибо еще раз, то что нужно  thanks

•DarkBlood•  Offline Сообщение №2916 написано: 03 Мая 2019 в 15:58


Странник


7
Доброго времени суток. Появился такой вопрос, в квесте есть два ответа и один из них должен давать книгу, как должен выглядеть скрипт для выдачи этой книги?
Пытался через : Game.GetPlayer().AddItem() и в пропертис добавить книгу в качестве предмета, но не получилось.

Dsion  Offline Сообщение №2917 написано: 04 Мая 2019 в 04:01 | Отредактировано: Dsion - Суббота, 04 Мая 2019, 04:03



1260
•DarkBlood•, да так и делается... Если компилятор выдал ошибку, покажи, какую. А если не выдал, то 90% что ты забыл заполнить проперти.

Myprism  Offline Сообщение №2918 написано: 04 Мая 2019 в 07:06


Физик


1508
•DarkBlood•, еще, квесты нужно проверять с сохранения, в котором они еще не были начаты.

slastik  Offline Сообщение №2919 написано: 31 Мая 2019 в 14:46


Жаждущий


210
День добрый, друзья.
Не могу решить проблемку. Есть активатор, который стоит в интерьере и должен постоянно воспроизводить звук. Есть саунд-дескриптор, в который забиты 10 звуковых дорожек. Если просто сделать саунд-маркер и поставить в интерьер или же просто в окне активатора задать ему наш дескриптор, чтобы он гонял его по кругу, то при таком варианте постоянно воспроизводится лишь один трек из десяти. Мне нужно, чтобы рандомно воспроизводились разные треки, поэтому решил сделать, как мне показалось, простой скрипт.

Event onLoad()
    PlayMySound()
EndEvent

Function PlayMySound()
    While Self.is3DLoaded()
        Sound01.PlayAndWait(Self)
    EndWhile
EndFunction


Вот вроде бы при загрузке объекта должна запускаться функция, которая гоняет музыку по кругу, пока модель объекта загружена. Если мы покидаем интерьер, то по идее модель выгружается и музыка прекращается. Но нет, при выходе наружу она продолжает играть, что не есть хорошо. Признаю, что совсем немного разбираюсь в скриптах и может это вовсе не так должно работать. Подскажите, как нужно сделать.

- Что это за горы стоят?
- А, это орки бегут!
Dsion  Offline Сообщение №2920 написано: 31 Мая 2019 в 15:52



1260
slastik, а без скрипта точно нельзя, да? Я пока не могу проверить... Лучше бы, конечно, без скрипта.

Не хочешь поискать ивент, который срабатывает в момент выхода игрока из локации? Можно проверить OnCellDetach() и OnDetachedFromCell().
Лучше запускать музыку в одном ивенте, а потом в другом останавливать по instance id.

Хрень в том, что в Скайриме не желательно писать функции, которые выполняются дольше одной секунды. Да и вообще, везде, где есть event loop (асинхронное программирование). Вернее, их лучше не вызывать в основном потоке. А, ладно, забудь.

Но если в Скайриме у тебя есть функция типа PlayMySound, которая выполняется дольше секунды, то что-то у тебя не так.

slastik  Offline Сообщение №2921 написано: 31 Мая 2019 в 16:20


Жаждущий


210
Цитата Dsion ()
Лучше запускать музыку в одном ивенте, а потом в другом останавливать по instance id.


Вот в том и проблема, что если запустить музыку одним событием и оставить играть, пока мы ее не выключим, то она выберет случайный трек и зациклится на нем. Получается, что нужно ее каждый раз запускать заново, как бы искусственно с помощью скрипта создавая loop, и тогда она каждый раз запускает случайную дорожку.

- Что это за горы стоят?
- А, это орки бегут!
Dsion  Offline Сообщение №2922 написано: 31 Мая 2019 в 16:52



1260
slastik, ну сам смотри. Можно использовать не один Sound, а FormList саундов и выбирать случайный в самом скрипте.

slastik  Offline Сообщение №2923 написано: 31 Мая 2019 в 18:30


Жаждущий


210
Dsion, т.е. не закидывать 10 треков в один саунд, а сделать 10 саундов по одному треку в каждом и объединить в форм-лист? Ок, но как в этом случае добиться, чтобы скрипт постоянно воспроизводил случайные саунды из этого форм-листа, а не выбрал один саунд и гонял его по кругу?

- Что это за горы стоят?
- А, это орки бегут!
Dsion  Offline Сообщение №2924 написано: 31 Мая 2019 в 19:06



1260
Хотя да, хрен чо сделаешь. События "проигрывание закончилось" нету-то. Это разве что еще и длительность звуков указывать вручную. Лажово.

dint999  Offline Сообщение №2925 написано: 10 Июля 2019 в 01:10


Странник


12
Dsion, Есть ли возможность прописать в скрипт событие связанное со сменой локаций (а именно с загрузкой экранов)??? Смысл в том, чтобы ГГ\НПС снимал и надевал автоматом некий Armor, сразу после загрузочного экрана.

Иsкатель  Offline Сообщение №2926 написано: 10 Июля 2019 в 01:19 | Отредактировано: Иsкатель - Среда, 10 Июля 2019, 01:21


Начинающий


67
dint999, OnLoadOnCellLoad

Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
  • Страница 98 из 98
  • «
  • 1
  • 2
  • 96
  • 97
  • 98
Поиск: