RobbyWhite Опубликовано 13 апреля, 2017 Опубликовано 13 апреля, 2017 Здравствуйте уважаемые, если не затруднит поясните мне такую деталь - есть евент который откликается на нажатие определенной кнопки, к примеру RegisterForKey(*anykeycode*) или OnKeyDown(Int KeyCode), очень интересная штука, но вот куда повесить скрипт с этим евентом, чтобы его можно было вызвать игроку всегда и везде?
werr Опубликовано 13 апреля, 2017 Опубликовано 13 апреля, 2017 13.04.2017 11:05:49, RobbyWhite сказал(-а):Здравствуйте уважаемые, если не затруднит поясните мне такую деталь - есть евент который откликается на нажатие определенной кнопки, к примеру RegisterForKey(*anykeycode*) или OnKeyDown(Int KeyCode), очень интересная штука, но вот куда повесить скрипт с этим евентом, чтобы его можно было вызвать игроку всегда и везде? На элиас игрока в квесте. A Random Dude's Story
SICreef Опубликовано 14 апреля, 2017 Опубликовано 14 апреля, 2017 Помогите пожалуйста разобраться. Решил попробовать сделать скрипт на добавление предметов в уровневые листы. Я в скриптах не особо разбираюсь, поэтому хорошенько погуглив вылепил такой скрипт: Скрипт Scriptname AAAFAItemsAddingInLVLlist extends Quest String Property StringMsg Auto Actor Property PlayerRef Auto Book Property TestNote Auto MiscObject property IngotIron auto MiscObject property IngotSteel auto MiscObject property IngotCorundum auto MiscObject property IngotDwarven auto Leveleditem property AAAFAEditorID_LeveledList1 auto Leveleditem property AAAFAEditorID_LeveledList2 auto Leveleditem property AAAFAEditorID_LeveledList3 auto Leveleditem property AAAFAEditorID_LeveledList4 auto Event OnInit() utility.wait(15.0) AAAFAEditorID_LeveledList1.AddForm(IngotIron, 1, 1) AAAFAEditorID_LeveledList2.AddForm(IngotSteel, 1, 1) AAAFAEditorID_LeveledList3.AddForm(IngotCorundum, 1, 1) AAAFAEditorID_LeveledList4.AddForm(IngotDwarven, 1, 1) PlayerRef.additem(TestNote, 1, 1) Debug.Notification(StringMsg) endEvent Этот скрипт задержавшись на 15 секунд, должен добавить слитки в пустые уровневые листы, а пустые уровневые листы, в свою очередь, уже добавлены в контейнер. Проблема в том, что слитки не появляются в контейнере. Сообщение появляется и добавляется только записка.Сам контейнер расположен в ячейке, в заброшенной тюрьме (EditorID: AbandonedPrison01), то есть в том помещении где начинается Alternate Start. Я не могу понять, что я делаю не так. Прикладываю esp и скрипт. TestScript.zip
Amiball Опубликовано 15 апреля, 2017 Опубликовано 15 апреля, 2017 14.04.2017 02:15:39, SICreef сказал(-а): Помогите пожалуйста разобраться. Решил попробовать сделать скрипт на добавление предметов в уровневые листы. Я в скриптах не особо разбираюсь, поэтому хорошенько погуглив вылепил такой скрипт: Скрипт Scriptname AAAFAItemsAddingInLVLlist extends Quest String Property StringMsg Auto Actor Property PlayerRef Auto Book Property TestNote Auto MiscObject property IngotIron auto MiscObject property IngotSteel auto MiscObject property IngotCorundum auto MiscObject property IngotDwarven auto Leveleditem property AAAFAEditorID_LeveledList1 auto Leveleditem property AAAFAEditorID_LeveledList2 auto Leveleditem property AAAFAEditorID_LeveledList3 auto Leveleditem property AAAFAEditorID_LeveledList4 auto Event OnInit() utility.wait(15.0) AAAFAEditorID_LeveledList1.AddForm(IngotIron, 1, 1) AAAFAEditorID_LeveledList2.AddForm(IngotSteel, 1, 1) AAAFAEditorID_LeveledList3.AddForm(IngotCorundum, 1, 1) AAAFAEditorID_LeveledList4.AddForm(IngotDwarven, 1, 1) PlayerRef.additem(TestNote, 1, 1) Debug.Notification(StringMsg) endEvent Этот скрипт задержавшись на 15 секунд, должен добавить слитки в пустые уровневые листы, а пустые уровневые листы, в свою очередь, уже добавлены в контейнер. Проблема в том, что слитки не появляются в контейнере. Сообщение появляется и добавляется только записка.Сам контейнер расположен в ячейке, в заброшенной тюрьме (EditorID: AbandonedPrison01), то есть в том помещении где начинается Alternate Start. Я не могу понять, что я делаю не так. Прикладываю esp и скрипт. TestScript.zip Слушай, а уровневые листы ты настроил правильно? Ошибка многих в том, что когда в уровневом листе они ставят шанс появления прдмета на 100, они не знают, что это не шанс появления, а шанс "не появления". Тоесть, что бы вещь появилась - надо ставить не 100 а к примеру 1.
SICreef Опубликовано 15 апреля, 2017 Опубликовано 15 апреля, 2017 Слушай, а уровневые листы ты настроил правильно? Ну в уровневых листах я боле менее разбираюсь. Там у меня 0 стоит. Я пробовал заместо AddForm, AddItem поставить, но Leveleditem не поддерживает функцию эдитем. Мне бы соурс скрипта рабочего посмотреть, который и предметы добавляет в уровневые листы и уровневые листы в другие уровневые листы.
Amiball Опубликовано 15 апреля, 2017 Опубликовано 15 апреля, 2017 15.04.2017 13:25:07, SICreef сказал(-а): Ну в уровневых листах я боле менее разбираюсь. Там у меня 0 стоит. Я пробовал заместо AddForm, AddItem поставить, но Leveleditem не поддерживает функцию эдитем. Мне бы соурс скрипта рабочего посмотреть, который и предметы добавляет в уровневые листы и уровневые листы в другие уровневые листы. Я щас не могу точно посмотреть - но вроде есть дефолтные скрипты добавления и работы в формлистах. Поищи в них.
SICreef Опубликовано 15 апреля, 2017 Опубликовано 15 апреля, 2017 Поищи в них. Увы, но я ничего полезного не нашёл.
bv1112223333 Опубликовано 14 мая, 2017 Опубликовано 14 мая, 2017 (изменено) Есть ли скрипт на покраснение экрана? Очень надо для моего мода. И ещё вопрос: как проигрывать звуки скриптом? Есть звук NPCHumanVampireFeed, в файлах игры он зовётся иначе - npc_human_vampirefeed_01.wav. Сделал команду NPCHumanVampireFeed.Play(akSpeaker) (ибо звук должен проигрываться в разговоре), но в Properties скрипта нужный звук не находится, такого названия просто нет. Как быть? __________ Разобрался. Звук был в разделе Sound discriptor, но отсутствовал в разделе Sound marker. Создал новый айди, вписал в него название айди из первого раздела и звук стал доступен в Properties. Если кто теперь подскажет команду на покраснение экрана, буду благодарен. Изменено 14 мая, 2017 пользователем bv1112223333
werr Опубликовано 15 мая, 2017 Опубликовано 15 мая, 2017 14.05.2017 17:55:24, bv1112223333 сказал(-а): Если кто теперь подскажет команду на покраснение экрана, буду благодарен.Это можно сделать с помощью Image Space Modifier-a. Среди ванильных вроде бы даже есть подходящий (absorb red), но и самому просто красный фрейм изготовить не трудно. Вызывается он (ISM) командой ApplyCrossFade(Float time). Это для плавного нарастания эффекта. Ну или просто Apply() для молниеносного. A Random Dude's Story
Pactifirus Опубликовано 20 мая, 2017 Опубликовано 20 мая, 2017 Здравствуйте, у меня тут назрел вопрос, можно ли как-то отследить степень заряда зачарования на предмете и как это сделать?
Vitalyudin Опубликовано 6 июля, 2017 Опубликовано 6 июля, 2017 При попытке использовать функцию SKSE (конкретно - "GetModByName") компилятор пишет, что это не функция или такой не существует. Как его заставить признать SKSE? Или, быть может, есть другой способ проверить, установлен ли мод? - Вопрос снят, это я дико затупил, забыв, что SKSE ставил инсталлятором, который не вбрасывает SKSE-шные ресурсы. Всё норм. 20.05.2017 09:19:24, Pactifirus сказал(-а): Здравствуйте, у меня тут назрел вопрос, можно ли как-то отследить степень заряда зачарования на предмете и как это сделать? В SKSE имеется такая функция - GetItemCharge, по ссылке и пример есть.
Vitalyudin Опубликовано 9 июля, 2017 Опубликовано 9 июля, 2017 А теперь реально вопрос, который решить у меня не получается. В общем, есть МКМ, в котором включается мод, после чего ГГ добавляется спелл, на котором висит скрипт, сканирующий (по идее) оружие и выставляющий его скорость атаки, вычисляемую по формуле. Но дело в том, что скрипт не срабатывает, даже вырезав весь код и прописав одно только уведомление, я это уведомление никак не получаю. Для проверки переместил это дело в МКМ и вызывал по нажатию на триггер, также этот спелл делал активируемой абилкой - всё работает и меняется, значит, дело в старте самого эффекта. Потому вопрос таков - как его нормально запустить? Нагугливал всякие OnUpdate, но так и не понял, как оно по-человечески применяется и эта ли функция должна вообще применяться. Если не сложно, объясните, пожалуйста, дубу. Хорошо бы перезапускать его при переэкипировке, но опять же - как? Есть. 1
mr Jyggalag Опубликовано 28 июля, 2017 Опубликовано 28 июля, 2017 (изменено) Вопрос: я создаю квест, у которого два пути активации: при прочтении письма в Покоях Архимага или при получении письма (гонец приходит после прохождения квеста "Око Магнуса"), тоесть это взаимоисключающие пункты. Насчет их взаимоисключения я придумал как сделать: 1) письмо в ПА (Покоях Архимага) удаляется после прохождения квеста 2) гонец приходит, после получения титула архимага и получения ГГ уровня Вопрос заключается в следующем: 1) как мне проверить, что ГГ - архимаг (знаю, что можно получить его ранг, но какой [по номеру] ранг у архимага - я хз); 2) как мне проверить, получил ли игрок уровень после прохождения квеста? Я знаю, что такая система в квесте "Пробуждение Королевы-Волчицы", но при попытке разобраться, я не понял, что да как там работает. Может кто мне объяснить как это работает? __________ UPD-решено. Изменил суть - письмо игрок получает от Толфдира, а условия взял с повторяющегося квеста на аномалию ("Отголоски" - MGR30). Таким образом, сам разобрался с проблемой, пока ждал, когда ответят Изменено 1 августа, 2017 пользователем wdsaasdw
L347z4 Опубликовано 6 августа, 2017 Опубликовано 6 августа, 2017 (изменено) Помогите поправить скрипт. Нужно, чтобы по окончании диалога книга (Book1) добавилась в левеллист (Container1). Этот сделан по примеру добавления книг игроку Урагом по окончании квеста "Библиотечные книги", но не врубаюсь, как заставить его работать с левел листом. Это оригинал: Спойлер;BEGIN FRAGMENT Fragment_0 Function Fragment_0(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE Game.GetPlayer().AddItem(FavorRewardGoldLarge) ;END CODE EndFunction ;END FRAGMENT ;END FRAGMENT CODE - Do not edit anything between this and the begin comment LeveledItem Property FavorRewardGoldLarge Auto А это то, что я пытался сотворить: LeveledItem Property FavorRewardGoldLarge Auto[/spoiler] Book Property Book1 Auto LeveledItem Property Container1 Auto Function Fragment_0(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor Container1.AddItem(Book1) EndFunction Изменено 6 августа, 2017 пользователем L347z4
Sirin... Опубликовано 12 августа, 2017 Опубликовано 12 августа, 2017 (изменено) ГСПД... Скажите, есть возможность где-нибудь достать уже готовый скрипт, который позволяет включать какой-то статичный объект, когда любой персонаж (не только игрок) входит в определенную зону (скажем, в пределы триггера), а затем отключать его и включать другой объект, когда персонаж покидает зону триггера? Устал искать, кучу инфы перерыл на английском языке, но ситуация еще усложняется тем, что у меня на компьютере компиляторы отказываются работать. Если кто-то предложит помощь - буду очень благодарен. Заранее спасибо. Не актуально. Изменено 18 августа, 2017 пользователем Sirin...
Sirin... Опубликовано 18 августа, 2017 Опубликовано 18 августа, 2017 Уважаемые! Расскажите, а есть ли какая-то скриптовая схема, которая позволила бы посчитать актеров внутри триггера? Ну то есть записать условие "когда здесь появляется один актер - действие начинается, пока здесь есть хотя бы один актер - действие выполняется, когда нет никого - действие прекращается"? То есть чтобы скрипт не реагировал на актеров, которые входят в поле действия триггера и выходят из него ровно до тех пор, пока не выйдет последний/не войдет первый? Я мастер объяснять, конечно, но... :D
YourBunnyWrote Опубликовано 18 августа, 2017 Опубликовано 18 августа, 2017 Считай количество входящих и выходящих при помощи событий OnTriggerEnter и OnTriggerLeave соответственно. 1 Всё провисло и болтается.
Sirin... Опубликовано 18 августа, 2017 Опубликовано 18 августа, 2017 18.08.2017 12:37:24, YourBunnyWrote сказал(-а): Считай количество входящих и выходящих при помощи событий OnTriggerEnter и OnTriggerLeave соответственно. Про них уже почитал, узнал. Но вот как именно считать в папирусе - это для меня загадка. Так что от помощи не отказался бы.
Sirin... Опубликовано 18 августа, 2017 Опубликовано 18 августа, 2017 Ниет, чет я тупенький :з Scriptname SRNewAutoLights extends ObjectReference Event OnTrigger(akActionRef) if GetTriggerObjectCount() == 0 ObjectReference.disable() else ObjectReference.enable() endIf EndEvent Не пойму, что здесь от меня требуется со словами missing ID at ')'
YourBunnyWrote Опубликовано 18 августа, 2017 Опубликовано 18 августа, 2017 18.08.2017 14:11:13, Sirin... сказал(-а): Не пойму, что здесь от меня требуется со словами missing ID at ')' Смотря какая строка имеется ввиду. Скорее всего, не указан тип параметра akActionRef. Вот накидал рабочий скрипт: Scriptname SRNewAutoLights extends ObjectReference Int _actrosCountInTriggerZone = 0 Int Property actrosCountInTriggerZone Function Set(Int newValue) If newValue < 0 newValue = 0 EndIf If newValue != _actrosCountInTriggerZone If newValue == 0 && _actrosCountInTriggerZone != 0 TriggerActionStop() ElseIf newValue != 0 && _actrosCountInTriggerZone == 0 TriggerActionStart() EndIf _actrosCountInTriggerZone = newValue EndIf EndFunction Int Function Get() Return _actrosCountInTriggerZone EndFunction EndProperty Event OnTriggerEnter(ObjectReference akActionRef) If akActionRef As Actor != None actrosCountInTriggerZone = actrosCountInTriggerZone + 1 EndIf EndEvent Event OnTriggerLeave(ObjectReference akActionRef) If akActionRef As Actor != None actrosCountInTriggerZone = actrosCountInTriggerZone - 1 EndIf EndEvent Function TriggerActionStart() Debug.MessageBox("В зону триггера вошли актёры") EndFunction Function TriggerActionStop() Debug.MessageBox("Зону триггера покинули актёры") EndFunction 1 Всё провисло и болтается.
Vitalyudin Опубликовано 18 августа, 2017 Опубликовано 18 августа, 2017 Не хотел бы навязываться и повторяться, но кто-нибудь что-нибудь по поводу моего вопроса может подсказать?
Sirin... Опубликовано 18 августа, 2017 Опубликовано 18 августа, 2017 18.08.2017 18:30:34, YourBunnyWrote сказал(-а):Вот накидал рабочий скрипт: Дяденька, та Вы божэнька *О* Спасибо большое, проверю.
Learoy Опубликовано 20 августа, 2017 Опубликовано 20 августа, 2017 Решил я короче изучать скрипты,принцып их написания я уже понял и вот у меня возник вопрос к вам "Знающим людям")))Есть ли какой-нибуть список всех функций,событий и т.д?
YourBunnyWrote Опубликовано 20 августа, 2017 Опубликовано 20 августа, 2017 Да, тут всё есть https://www.creationkit.com/index.php?title=Category:Papyrus 1 Всё провисло и болтается.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти