Можно легко выполнить задачу, отредактировав квест с фразами "bad dog." и "good dog." Или можно тоже легко выполнить задание, отредактировав квест супружества или HF квест, в котором алиас собаки.
Вопрос в том, как эту задачу выполнить, не засовывая клешни в ванильные квесты... Скриптик можно прицепить к любому событию, в принципе: игрок загружает игру, игрок меняет локацию, игрок просыпается итп. На любое событие можно повесить скрипт в 3 строчки, который помирит супруга и собаку.
Если собака - уникальный и лично тобой созданный Актор, то можно на неё саму повесить скрипт с ивентом OnLoad... Каждый раз при загрузке модели, собака будет делаться другом текущему супругу...
Для скриптов есть функция Weather currentWeather = Weather.GetCurrentWeather()
Но тебе, скорее, нужно не это, а Condition: GetIsCurrentWeather - проверяет, соответствует ли погода выбранной или IsRaining - идет ли дождь (не проверял). Эти условия можно просто на пакет вешать.
Вряд ли есть штатный способ переименования скриптов. Имя скрипта - это как имя класса в С++. Как тип переменной, если хотите. ObjectReference, Actor - это всё имена скриптом. Переименуем скрипт ObjectReference и тысячи других скриптов перестанут компилироваться.
Уточним, правильно ли я понимаю, что должен делать этот лошадиный маркер... Когда игрок использует быстрое перемещение в домашнюю локацию, сидя на лошади, то он появляется на обычном маркере всё еще сидя на лошади. А если игрок перемещается в домашнюю локацию НЕ сидя на лошади, то игрок должен появиться на обычном маркете, а лошадь - на лошадином маркере.
Так это должно работать? Это не значит, что лошадь отправится пешком в конюшню, если игрок приедет на ней, а потом слезет.
Ну или можно наделать кастомных ядов с любой длительностью действия. Даже сделать, чтоб на их силу влияли перки. Но с теми, что игрок сам варит на алхимическом столе, - не знаю, как сделать... Без SKSE - точно не знаю.
Чо-то у нас проблемы с взаимопониманием :-D Я ничего не предлагаю. Я написал, что мне не приходит в голову способов, которые будут работать с теми ядами, которые создаются игроком на алхимическом столе. Может, кто-то другой что-то придумает и отпишет.
Я плохо помню... Но разве игрок замедляется? Именно крик я не пробовал, но делал своё заклинание с замедлением времени и даже полной остановкой. Помню, что выпущенные стрелы и огненные шары просто висели в воздухе и никуда не летели... Но не помню, чтоб замедлялся игрок...
Сначала эти продукты сделать. Хехехе. А потом добавить в подходящий лэвелед-лист. Желательно скриптом, чтоб не редактировать ванильные записи. Я названия листа с едой не помню, но можно посмотреть сундук любого торговца едой.
Наверное, можно и так. Но я бы сделал это скриптом и в другой список. И, возможно, новые товары не появятся в продаже до следующего сброса инвентаря торговца.
Эх, Arin... Не вышло у меня привить тебе уважение к Кодексу В описанном тобой случае конфликты не "вряд ли возможны", а гарантированы... Полная несовместимость с любым другим модом, который захочет добавить что-то торговцам таким же образом. Плюс несовместимость с торговцами из других модов и будущих DLC... И еще черт-знает-что. А маленький скриптик мог бы добавить товары торговцам и сохранить совместимость мода с чем-угодно навсегда.
Мне так хотелось, чтоб именно ты научилась уважению к конечному пользователю... Чтоб твои работы приносили им только радость, а не проблемы с совместимостью/отключением мода/обновлением итп.
Rivazza, сойдёт и так, если ты новичок и не дружишь со скриптами. Но если какой-то другой мод другого автора тоже будет добавлять что-то в этот список еды, то не будет совместимым с твоим...
В Драгонборне одна из книг предотвращает нанесение урона спутникам заклинаниями. Можно посмотреть, как там это сделано. Наверное, через Mod Spell Magnitude с определенными Conditions для Target.
If RelationshipMarriageFIN.IsRunning() == True && RelationshipMarriageFIN.GetStage() >= 10 && Game.GetPlayer().GetCurrentLocation() == LoveInterest.GetActorRef().GetCurrentLocation() ; debug.trace(Self + "Giving player the Lover's Comfort spell on Sleep End") MarriageRestedMessage.Show() RemoveRested() Game.GetPlayer().AddSpell(MarriageSleepAbility, abVerbose = false) ElseIf Game.GetPlayer().GetCurrentLocation().HasKeyword(LocTypeInn) == True ; debug.trace(Self + "Giving player the Well Rested spell for sleeping in an Inn") WellRestedMessage.Show() RemoveRested() Game.GetPlayer().AddSpell(WellRested, abVerbose = false) ElseIf Game.GetPlayer().GetCurrentLocation().HasKeyword(LocTypePlayerHouse) == True ; debug.trace(Self + "Giving player the Well Rested spell for sleeping in Player House") Game.GetPlayer().AddSpell(WellRested, abVerbose = false) Else ; debug.trace(Self + "Giving player the Rested spell for sleeping") RestedMessage.Show() RemoveRested() Game.GetPlayer().AddSpell(Rested, abVerbose = false) EndIf
1. Если у игрока есть супруг/супруга и находится в той же локации, то будет MarriageSleepAbility - адский отдых. 2. Если локация помечена (ключевым словом) как гостиница, будет WellRested - хороший отдых. 3. Если локация помечена, как дом игрока, то тоже WellRested. 4. В остальных случаях - просто Rested.
Ну это, конечно, если игрок - не оборотень и ничего такого.
Я проверил скрипт, который сразу (во время старта игры) убивает NPC. Не очень хорошо. Когда приходишь к нему, он-то мертвый и воскрешается, но голый. Одежда не надета. И я даже знаю, почему, но это не интересно.
Лучшее, что пока пришло в голову, - это сделать два референса. На одном будет галочка "Starts Dead", а второй будет отключен. Экипировка кольца будет не воскрешать NPC, а отключать мертвого и включать на том же месте живого.
Multigone, чойто? А вообще, пути, как минимум два: 1. Уменьшить урон исходящих заклинаний, если цель - союзник. 2. Уменьшить входящий урон, если атака прилетела от союзника. Хоть что-то одно должно бы сработать.
SoraSt, может, как-то так... Не знаю. Это на референс вешается:
Вот блин. Я уже было впал в праведный гнев и хотел спросить, чем тебя не устроила консольная команда GetGlobalValue, которой я тебе посоветовал проверять эту переменную. А потом заметил, что этого сообщения нету в исходящих. Неужели не отравилось? Я был уверен, что послал его тебе в приват. Даже точно помню, что писал.
Что-то я вообще не понял, как вы собираетесь сделать это скриптом... Установленный IgnoreFriendlyHits означает только то, что актор не будет становиться враждебным, если его пнут пару раз. Вам разве это нужно? Я подумал, что нужно вообще не наносить урона союзникам...