Тема для вопросов по скриптингу.
Функции папируса:
На английском
На русском (не все, но базис)
#361
Отправлено
- werr, Chesh¡re и Olechkafum нравится это
#362
Отправлено
#363
Отправлено
Чота у тебя регистрация и "он апдейт" к триггеру чтоль привязаны? А анрегистер где?
Так нельзя же делать.
Пили лучше квест.
Зашел в триггер - включился квест стадии 10, стартовал отсчет (и триггер отключился заодно). После отсчета появилось письмо, заодно сам отсчет отключился.
Игрок прочитал записку - включился квест стадии 20, пошел новый отсчет.
Ну и т.д.
Последнюю записку прочел - квест остановился. Это автоматически сделает анрегистр всем апдейтам.
Сообщение отредактировал Azazellz: 06 июня 2018 - 22:15
#364
Отправлено
Проблема заключается в том, что мне как раз и не надо, чтобы игрок читал письма - они бы случайно просто переиздавались бы, без участия игрока. Я пока решил послать нафиг эти манипуляции с от счётом времени и воспользоваться таймером, сделанным на основе магического эффекта (с выставленным мною временем).Чота у тебя регистрация и "он апдейт" к триггеру чтоль привязаны? А анрегистер где?
Так нельзя же делать.
Пили лучше квест.
Зашел в триггер - включился квест стадии 10, стартовал отсчет (и триггер отключился заодно). После отсчета появилось письмо, заодно сам отсчет отключился.
Игрок прочитал записку - включился квест стадии 20, пошел новый отсчет.
Ну и т.д.
Последнюю записку прочел - квест остановился. Это автоматически сделает анрегистр всем апдейтам.
#367
Отправлено
https://www.creation...RaceMenu_-_Game
Насчет второго - даже хз.
По идее если ты открыл рейсменю - ты его должен когда-то закрыть, ибо выхода то оттуда никакого другого нет. При этом пока оно открыто - время самой игры стоит.
Поэтому можно попробовать использовать какой-нибудь таймер, ну или заюзать функцию wait (эту или эту).
Т.е. скриптом открываешь рейсменю, кодируешь небольшое ожидание, и после этого ожидания переключаешь стадию квеста.
#368
Отправлено
https://www.creation...RaceMenu_-_Game
Насчет второго - даже хз.
По идее если ты открыл рейсменю - ты его должен когда-то закрыть, ибо выхода то оттуда никакого другого нет. При этом пока оно открыто - время самой игры стоит.
Поэтому можно попробовать использовать какой-нибудь таймер, ну или заюзать функцию wait (эту или эту).
Т.е. скриптом открываешь рейсменю, кодируешь небольшое ожидание, и после этого ожидания переключаешь стадию квеста.
Спасибо большое
#369
Отправлено
Если говорить про аккуратную реализацию того, что ты хочешь, для этого требуется SKSE.Добрый день! Подскажите пожалуйста что нужно прописать в скрипте диалога чтобы после его завершения открывалось рэйс меню , а после его закрытия стадия квэста считалась завершенной.
В скрипте диалога-то ты прописываешь простую команду:
Game.ShowRaceMenu()А смена стадии квеста при выходе из этого меню делается чуть мудренее. Вешаешь новый скрипт на квест, где будет следуюющее:
Event OnInIt() RegisterForMenu("RaceSex Menu") EndEvent Event OnMenuClose(String MName) If MName == "RaceSex Menu" SetStage(xx) UnregisterForAllMenus() Endif EndEvent
#370
Отправлено
Спасибо большое))Если говорить про аккуратную реализацию того, что ты хочешь, для этого требуется SKSE.
В скрипте диалога-то ты прописываешь простую команду:Game.ShowRaceMenu()А смена стадии квеста при выходе из этого меню делается чуть мудренее. Вешаешь новый скрипт на квест, где будет следуюющее:Event OnInIt() RegisterForMenu("RaceSex Menu") EndEvent Event OnMenuClose(String MName) If MName == "RaceSex Menu" SetStage(xx) UnregisterForAllMenus() Endif EndEvent
#371
Отправлено
Уважаемые форумчане, подскажите пожалуйста почему не работает такой скрипт?
Scriptname ADoTeleportHouseScript extends ActiveMagicEffect Bool bHouse = False Event OnEffectFinish(Actor akTarget, Actor akCaster) If bHouse ; True Debug.MessageBox(bHouse) Else ; False Debug.MessageBox(bHouse) Endif bpHouse = !bpHouseendEVENT
Сколько бы ни кастовал, всё время пишет False.
#372
Отправлено
А что еще он должен писать? У тебя bHouse всегда False. Ты значение не меняешь.Уважаемые форумчане, подскажите пожалуйста почему не работает такой скрипт?
Scriptname ADoTeleportHouseScript extends ActiveMagicEffectBool bHouse = FalseEvent OnEffectFinish(Actor akTarget, Actor akCaster)If bHouse ; True Debug.MessageBox(bHouse)Else ; False Debug.MessageBox(bHouse)EndifbpHouse = !bpHouseendEVENTСколько бы ни кастовал, всё время пишет False.
P.s. bpHouse и bpHouseendEVENT не определены. Такой скрипт даже компилироваться не будет. Ты как будто только кусок кода скинул.
#373
Отправлено
Вы правы, ошибка в тексте вопроса.
Чтобы исправить ошибки задам вопрос заново
Почему скрипт прикреплённый к триггеру
Scriptname a0DoLightScript extends ObjectReference Bool bHouse = False Event OnTriggerEnter(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() If bHouse ; True Debug.MessageBox(bHouse) Else ; False Debug.MessageBox(bHouse) Endif bHouse = !bHouse endif EndEvent
работает корректно, а скрипт прикреплённый к заклинанию
Scriptname ADoTeleportHouseScript extends ActiveMagicEffect Bool bHouse = False Event OnEffectFinish(Actor akTarget, Actor akCaster) If bHouse ; True Debug.MessageBox(bHouse) ; Будет скрипт телепортации в дом. Else ; False Debug.MessageBox(bHouse) ; Будет скрипт телепортации из дома. Endif bHouse = !bHouse endEVENT
работает не корректно. Всё время пишет "Fflse"
Переменная сохраняется только во время выполнения скрипта.
#375
Отправлено
Вы правы, ошибка в тексте вопроса.
Чтобы исправить ошибки задам вопрос заново
Почему скрипт прикреплённый к триггеру
...
работает корректно, а скрипт прикреплённый к заклинанию
...
работает не корректно. Всё время пишет "Fаlse"
Ага, понятно. Дело в том, что инстанция (instance) скрипта, что срабатывает на триггере, не меняется. Проще говоря – работает ВСЕГДА один и тот же скрипт.
В случае же магического эффекта, он, этот эффект, привязан к заклинанию. Каждый раз, когда кастуется спелл, на ActiveMagicEffect-е рабочая instance твоего скрипта инициализируется по-новой. Потому как формально, всякий раз при кастовании спелл возникает как новый объект. Говоря иначе, при касте заклинания, скрипт стартует с самого начала, каждый раз как первый раз. А поскольку исходное значение тобой задано как FALSE, то в if и срабатывает соответствующая ветка.
Совет может быть таким. Если тебе хочется использовать ActiveMagicEffect, то имеет смысл завести глобальную переменную вместо локальной для данного скрипта и работать с ней.
Это я чето в два ночи не сообразил))Я так думаю, что это "bpHouse = !bpHouse" и "endEVENT"
Перевод строки потерялся =)
#377
Отправлено
Вот что получилось со скриптом заклинания телепортации.
Scriptname aDoTeleportScript extends activemagiceffect GlobalVariable Property gpHouse Auto ObjectReference Property PalaseDova Auto ObjectReference Property WorldDova Auto Event OnEffectStart(Actor akTarget, Actor akCaster) If gpHouse.GetValue() == 0 ; True ; Debug.MessageBox(gpHouse.GetValue()) ; Телепортация в дом. gpHouse.SetValue(1) WorldDova.MoveTo(Game.GetPlayer()) Game.GetPlayer().MoveTo( PalaseDova) Else ; False ; Debug.MessageBox(gpHouse.GetValue()) ; Телепортация из дома. gpHouse.SetValue(0) Game.GetPlayer().MoveTo( WorldDova) Endif EndEvent
Скрипт прекрасно работает.
Ещё бы заставить напарника телепортировался. Как это можно сделать?
Кто знает подскажите пожалуйста
#380
Отправлено
Ну тут уж хз. Когда я телепорты из Mark and Recall юзал - фолловеры за мной бегали. Может, не сразу, с небольшими задержками, но бегали.
Главная трудность, имхо - определить, кто там сейчас в КуррентФолловерах находится.
Можешь попробовать разобрать спелл "Лидерская Телепортация" из EFF. При использовании этот спелл перемещает к игроку всех активных фолловеров. Только вот в EFF своя система спутников, и я хз, как она устроена - ни разу в нее не лазил. Да и в ванильную тоже довольно поверхностно - если сможешь найти, куда там текущий спутник записывается (в аллиас квестовый какой-нибудь, например) то можно будет его оттуда и брать, а потом уже moveto на него использовать.
Сообщение отредактировал Azazellz: 06 июля 2018 - 22:41
#381
Отправлено
Game.FastTravel(HomeMarker) где HomeMarker это маркер, к которому будет телепортироваться игрокЭто принудительный фасттревел, так что, по идее, компаньоны и КО (призванные существа там всякие, компаньоны-животные, etc) должны повести себя стандартно, т.е телепортироваться вместе с игроком.
Единственное "но" - я не помню, получится ли так телепортировать игрока в локацию, в настройках которой запрещена возможность фасттревела.
Темы с аналогичным тегами 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 |
|
Количество пользователей, читающих эту тему: 2
0 пользователей, 1 гостей, 0 скрытых
-
Bing (1)