Тема для вопросов по скриптингу.
Функции папируса:
На английском
На русском (не все, но базис)
#821
Отправлено
- werr, Chesh¡re и Olechkafum нравится это
#823
Отправлено
Скриптами можно.
В скрипт-фрагменте к последней стадии добавляешь, и оно запустится.
Можешь ванильные квесты поглядеть, как именно там это прописано. Много где есть.
Строка с Next Quest в списке стадий не используется и не работает.
Да, ещё вопрос если можно. Вдруг вы сталкивались с таким...
На предпоследней стадии кв гг должен поговорить с НПС, и вот что странно...
Загружаюсь с сохранения где только что завершён ванильный квест, после которого начинается мой квест... с курьера и письма. Курьер приходит, квест начинается, все стадии работают кроме последней - разговора с НПС.
Когда прохожу свой квест, дохожу до НПС... он не вступает в диалог. Вообще. "Е" нажимаю... молчит зараза. Но стоит сохраниться рядом с ним и тут же загрузить эту сохранённую игру, он в диалог вступает, спокойно разговариваю с ним и завершаю квест.
У меня даже предположений нет почему так происходит. Возможно вы сталкивались с такой проблемой?
UPD: Квест не запускается. Сделал как в ванильных квестах в последней стадии своего квеста в той что отмечен чекбокс Complite Quest написал SangQuestP02.Start() - не запустился. Через консоль в игре запускается.
Добавил стадию... выглядит теперь так:
SetObjectiveCompleted(50) ; Завершённая 50 стадия, это 100 стадия. SangQuestP02.Start() ; Запуск 2 квеста SangQuestP02.Setstage(10) ; Установка стадии 2 квеста stop() ; Хз.. есть в ванильных квестах
Всё равно не запускается.
Может быть у меня как то не так сам квест сделан? У меня 1 квест заканчивается разговором с НПС. После разговора квест завершается.
И тут же должен начаться 2 квест и цель поговорить с тем же НПС.
1 квест завершается и всё... 2 квест не запускается.
Я прикреплю скриншоты где и что отмечал и записывал, может быть вы увидите мою ошибку
Сообщение отредактировал tokugava: 28 июля 2023 - 19:17
#824
Отправлено
У меня даже предположений нет почему так происходит. Возможно вы сталкивались с такой проблемой?
Диалоги НПСам не сразу после первой загрузки раздают, а только после второй.
Штука известная, и вроде было какое-то к ней решение (кажется), но деталей не помню.
После разговора квест завершается.
Если у тебя в разговорном скрипт-фрагменте есть скрипт на завершение квеста - туда же можно закинуть и скрипт со стартом нового.
- tokugava это нравится
#825
Отправлено
Ребят, а while (true) нельзя в папирусе, да? Прост, надо каждые полчаса запускать определенную функцию. Ругается на aaaCheckUpdateScript.psc(5,0): missing EOF at 'While'
Код прилагаю:
Scriptname aaaCheckUpdateScript extends Quest int i = 0 While i < 10 checkUpd() Utility.Wait(1800.0) endWhile Function checkUpd() string cppResult = aaaCheckUpdateFunctions.checkUpdate() If (cppResult == "true") Debug.MessageBox("Доступно новое обновление!") else endIf endFunction
Всё, разобрался. while и подобные штуки должны быть внутри событий и функций
Исправленная версия, если кому-то надо:
Scriptname aaaCheckUpdateScript extends Quest event OnInit() While(true) checkUpd() Utility.Wait(1800.0) endWhile endEvent Function checkUpd() string cppResult = aaaCheckUpdateFunctions.checkUpdate() If (cppResult == "true") Debug.MessageBox("Доступно новое обновление!") else endIf endFunction
Сообщение отредактировал ac97: 30 июля 2023 - 14:55
#826
Отправлено
Диалоги НПСам не сразу после первой загрузки раздают, а только после второй.
Штука известная, и вроде было какое-то к ней решение (кажется), но деталей не помню.
Если у тебя в разговорном скрипт-фрагменте есть скрипт на завершение квеста - туда же можно закинуть и скрипт со стартом нового.
Спасибо!!!!
ВОбщем диалог так и не исправил. Сохраняюсь рядом, перегружаю тогда говорит. Буду искать информацию.
А нет такого же бага у СК с функцией GetGold в condition?
А то выставил проверку в диалоге, что бы топик появлялся только когда золота больше или равно определённому количеству. Проверяю когда нет столько золота, не появляется как и надо.
Но вот беда, добавляю себе золота, а топик всё равно не появляется.
Пробовал GetItemCount тоже не работает =(
Сообщение отредактировал tokugava: 31 июля 2023 - 02:40
#829
Отправлено
У тебя субъект кондишна не тот выставлен. В таком виде ты у НПСа количества золота проверяешь, не у игрока.
Переставь первую строчку на Player.
Помогите пожалуйста ещё разик... Не могу вообще найти никакой информации как создать таймер ожидания до выполнения квеста.
Например НПС говорит "приходи через 3 суток(минимум), поговорим".
ГГ ждёт 3 суток, шатается по миру, 3 суток проходит и стадия квеста обновляется... мол прошло 3 суток (или больше) Надо сходить поговорить с НПС.
Поиск в гугле не дал результатов.
Поиск в яше так же результатов не дал.
Поиск на ютубе результата не дал.
Запилил сам скрипт, по идее должен работать... но при компиляции ошибка чё то там не соответствует типу или не задано...
Вот сам скрипт:
Scriptname SangTimeScr extends Quest Quest Property MyQuest Auto Int Property iTimeToFinish auto Function timerFinish() iTimeToFinish = Utility.WaitGameTime(24) ;Ждём 24 часа MyQuest.SetStage(40) EndFunction
Ну и даже если бы скрипт и сработал, я не знаю как вызывать функции в диалогах ((((
Может быть вы знаете где посмотреть информацию, примеры скриптов таких или даже может быть знаете где найти гайд или видео гайд? Помогите пожалуйста.
Сообщение отредактировал tokugava: 31 июля 2023 - 17:20
#830
Отправлено
Помогите пожалуйста ещё разик... Не могу вообще найти никакой информации как создать таймер ожидания до выполнения квеста.
Например НПС говорит "приходи через 3 суток(минимум), поговорим".
ГГ ждёт 3 суток, шатается по миру, 3 суток проходит и стадия квеста обновляется... мол прошло 3 суток (или больше) Надо сходить поговорить с НПС.
Поиск в гугле не дал результатов.
Поиск в яше так же результатов не дал.
Поиск на ютубе результата не дал.
Запилил сам скрипт, по идее должен работать... но при компиляции ошибка чё то там не соответствует типу или не задано...
Вот сам скрипт:Scriptname SangTimeScr extends Quest Quest Property MyQuest Auto Int Property iTimeToFinish auto Function timerFinish() iTimeToFinish = Utility.WaitGameTime(24) ;Ждём 24 часа MyQuest.SetStage(40) EndFunctionНу и даже если бы скрипт и сработал, я не знаю как вызывать функции в диалогах ((((
Может быть вы знаете где посмотреть информацию, примеры скриптов таких или даже может быть знаете где найти гайд или видео гайд? Помогите пожалуйста.
Scriptname SangTimeScr hidden Function timerFinish(int time) Utility.WaitGameTime(time) ;Ждём n часов EndFunction
сохраняешь скрипт отдельно. Потом, в нужной стадии любого квеста, вызываешь функцию timerFinish(). ну и переключаешь дальше на стадию, если надо.
К примеру, у тебя текущая стадия квеста 35, где надо подождать. Открываешь скрипт текущей стадии и пишешь туда timerFinish(24), а потом, переход на следующую стадию
Сообщение отредактировал ac97: 01 августа 2023 - 09:59
- tokugava это нравится
#831
Отправлено
Помогите пожалуйста ещё разик... Не могу вообще найти никакой информации как создать таймер ожидания до выполнения квеста.
Я где-то видел туториал, но заново найти так и не смог.
Лучше наверное так сделать: говоришь с нпс -- диалог переводит квест на стадию с ожиданием -- в этой стадии у тебя скрипт-фрагмент, который, собственно, делает ожидание -- ожидание заканчивается, скрипт переводит квест на следующую стадию с уведомлением.
Такое лучше в квестах хранить, чем в диалогах.
Функции тебе нужны в основном для того, чтоб их было проще вызывать в теле самого скрипта. Если они несколько раз используются, либо они сильно громоздкие - чтоб меньше сам скрипт загромождать.
Можно и без них обходиться, закидывая код для выполнения безо всяких функций. Особенно в скрипт-фрагментах.
Конкретно в твоем скрипте ты пытаешься на i, которое определено как целое число, назначить процедуру выполнения ожидания, которая вообще никак в виде целого числа представлена быть не может, потому что, ну, оно время ждет, а не что-то вычисляет =)
Естественно ругаться будет.
"iTimeToFinish =" просто лишнее. Проперти с ним, соответственно, тоже не нужно.
- tokugava это нравится
#832
Отправлено
Вобщем перемудрил сам себя..
Никакого скрипта дополнительного не нужно. Эта функция уже есть в утилитах...
Ломал голову а оказалось всё куда проще:
Utility.WaitGameTime(24)
Вот и всё что нужно было написать во фрагменте папируса на вкладке Quest stages
Код простой как 3 копейки:
SetObjectiveDisplayed(10) Utility.WaitGameTime(24) ; Мда.... MyQuest01.SetStage(20) SetObjectiveDisplayed(20)
#833
Отправлено
доброго времени суток...
Понимаю, что щас все в се и ** и **. но вот, я до сих пор в LE. Несколько лет не играл в скайрим. Нифига не помню. По крупицам восстанавливаюсь. Можно пример скрипта, как главногоо героя уложить в сауну на полочке? Можно(или нужно) через скрипт...потихому память возвращается. Интересует как в Campfire, уложить ГГ на землю,чтобы он лежал и смотрел вокруг. как на стуле тока лежа. Не пинайте....я на стадии восстановления. Кста на второй вкладке. мой скрипт, он рабочий...если ругается строки посмотртеть, на которые ругается.
З.Ы. Кста Часто бывают ошибки из-за очередности установки для LE. skse_1_07_03 и Creation_Kit_1.9.32, они перезаписывают главные скрипты друг друга, и можно получить в итоге тот же UTIL старой версии. Если какой то функции не хватат, посмотрите главные скрипты в обоих вариантах.
Сообщение отредактировал budu200: 02 марта 2024 - 04:00
#834
Отправлено
доброго времени суток...
Понимаю, что щас все в се и ** и **. но вот, я до сих пор в LE. Несколько лет не играл в скайрим. Нифига не помню. По крупицам восстанавливаюсь. Можно пример скрипта, как главногоо героя уложить в сауну на полочке? Можно(или нужно) через скрипт...потихому память возвращается. Интересует как в Campfire, уложить ГГ на землю,чтобы он лежал и смотрел вокруг. как на стуле тока лежа. Не пинайте....я на стадии восстановления. Кста на второй вкладке. мой скрипт, он рабочий...если ругается строки посмотртеть, на которые ругается.
З.Ы. Кста Часто бывают ошибки из-за очередности установки для LE. skse_1_07_03 и Creation_Kit_1.9.32, они перезаписывают главные скрипты друг друга, и можно получить в итоге тот же UTIL старой версии. Если какой то функции не хватат, посмотрите главные скрипты в обоих вариантах.
Зачем тебе скрипт для того, чтобы укладывать игрока? Используй фурнитуру.
Скрипты для всех версий одной игры общие, насколько я знаю. В SE-AE добавили кое-то, но и там всё должно быть совместимо.
Темы с аналогичным тегами papyrus, help, скрипты, вопросы
Моддинг →
Моддинг Skyrim →
Восстановление на основе Зала ДозораАвтор Alex_andra, 11 дек 2023 mod, help |
|
|||
|
Моддинг →
Моддинг Skyrim →
Отстройка ВинтерхолдаАвтор Alex_andra, 10 авг 2023 bugs, moding, help |
|
||
Моддинг →
Моддинг Oblivion →
Скрипт Для СнаряженияАвтор БесездаБойчик, 07 сен 2022 скрипты, скрипт |
|
|||
Моддинг →
Моддинг Skyrim →
Нужны добровольцы для теста модаАвтор arkadiy111, 11 апр 2022 help |
|
|||
help
Моддинг →
Моддинг Skyrim →
Ram and Skyrim seАвтор Samurai1, 03 апр 2022 help |
|
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 скрытых