Myprism, мне тоже ничего в голову не приходит... Ну можно повесить на вещи зачарование с постоянным эффектом. Тогда будет возможно отслеживать момент загрузки актора. Но это как-то не изящно. Можно дать всем расам умение с постоянным эффектом (или там где-то есть фишка, позволяющая дать умение всем акторам). Можно заставить вещь проверять состояние (загружен/не загружен) актора-носителя каждые несколько секунд. Эти варианты не только не изящны, но еще и создадут дополнительную нагрузку. В общем, одни кривые костыли... А меня от костылей уже тошнит... Я теперь либо делаю красиво, либо не делаю вообще... Если проблему нельзя исправить "по-нормальному" (средствами nifskope итп.), то я бы вообще забил...
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №1172
| Тема: Вопросы по скриптам Papyrus
написано: 12 декабря 2018, 22:08
| Отредактировано: Dsion - 12 декабря 2018, 22:08
Myprism, да, вроде, всё сохраняется... Вход/Выход/Загрузка не должны никак мешать работе скриптов... Но я бы все-равно не использовал функцию utility.wait()... Это просто воще не круто...
Работает нормально. NPC, у которых такая вещь в аутфите, перенадевают её во время загрузки локации. А если такого NPC убить, забрать вещь и надеть на спутника, тот сразу перенадевает её. И хреново, конечно, у вещи нет референс id. Ни зарегистрировать её, ни даже Self использовать нельзя.
Miranda_Kusland, можешь попробовать вот такое... Это позволит добавить ему ответ, но не факт, что решит проблему. 1. Создаем новый FormList "ExtraSpouses", добавляем туда нужного Actor'а. 2. Открываем квест RelationshipMarriageWedding. Во вкладке Aliases открываем алиас LoveInterest. 3. Там есть одно условие (GetInFaction). Открываем его и ставим галочку OR. 4. Там же добавляем второе условие: IsInList ExtraSpouses == 1. Перемещаем вниз, чтоб оно было после GetInFaction. Сохраняем. 5. В том же квесте открываем вкладку Scenes. Открываем сцену RelationshipMarriageWeddingSceneView. Находим там нужную фразу. 6. Клацаем там, клацаем что-то... Ну и, короче, должно выйти как-то так: http://piccy.info/view3....rig Появилась возможность добавить звук для уникального голоса.
Добавлено (30 Января 2019, 16:29) --------------------------------------------- Если не получится, можешь выложить нам мод и сохранение перед началом церемонии, а мы поглядим, в чем проблема.
Добавлено (30 Января 2019, 16:34) --------------------------------------------- Я бы предложил обойтись без церемонии и просто прописать нужное тело своим супругом... Но девушке такая идея, наверное, не понравится
Miranda_Kusland, вообще, оно пишет, что не найдена переменная SolitudeHouse. Я там на краешке скриншота, вроде, вижу, что ты добавила новый топик специально для своего кастомного супруга. Если хочешь понять, почему не компилируется скрипт, то
В поле "End" виден не весь скрипт, а только его фрагмент. Чтоб посмотреть весь скрипт, можно клацнуть ПКМ по TIF_???????? и выбрать "Edit Source". В данном случае в конце скрипта должно быть такое (посмотри ванильные скрипты на соседних топиках): ReferenceAlias Property SolitudeHouse Auto Это объявление проперти SolitudeHouse, которую потом нужно еще и заполнить (не забудь). После заполнения проперти скрипт выглядит не как синий плюсик, а как маленький синий плюсик с желтым карандашом :)
но я бы на это всё забил.
Смотри, в чем хрень... У супругов есть всякие диалоги (не только "да" на церемонии, но еще и для обычной супружеской жизни)... DLC HearthFires, вроде как, добавляет еще диалоги и квесты с участием супруга. Если ты оставишь кастомному супругу уникальный голос, то, во-первых, как сама видишь, придется многое перелопатить в ванильных квестах, а во-вторых, придется как-то записывать сами фразы...
Может, все-таки сделать, чтоб перед началом церимонии голос супруга менялся на какой-то из ванильных? Это всё упростит.
Добавлено (03 Февраля 2019, 21:13) --------------------------------------------- А, может, и не ReferenceAlias... Да, глянь, лучше, на соседних топиках. И не забудь заполнить, тоб появился карандашик.
Miranda_Kusland, да и хрен с ним... Там то же самое, что и в остальных... Тебе нужно было только посмотреть property: имя, тип, чем заполнено. Посмотрела? Вот сделай такую же в своем кастомном ответе для кастомного голоса (который выдавал ошибку при компиляции). Ванильные трогать не нужно. И, если не сложно, поделись мыслями по поводу моего предложения все-таки поменять голос. Ты действительно очень хочешь оставить именно уникальный?
p.s.: исходники скриптов (то, что ты называешь "скрипт прогрузился") нужны только если мы изменяем этот конкретный скрипт. Если не меняем, то пофигу, прогрузились ли исходники. Тебе вряд ли понадобится менять ванильные скрипты.
Добавлено (03 Февраля 2019, 22:18) --------------------------------------------- Ты добавила новые ответ для конкретного NPC. Нормально, сойдет. Но еще можно было взять любой из уже существующих ответов, поставить "OR" на условие, ограничивающее голоса, и добавить после него IsInList ... Ну как в тот раз, короче...
Когда любой из нас создает любое произведение (не работая при этом по контракту), мы автоматически без всякой регистрации или каких-либо процедур получаем на него Исключительное Право (можете загуглить термин). Исключительное Право означает, что мы можем делать с произведением всё, что захотим (если это не нарушает закон), а все остальные люди по-умолчанию не могут делать с этим произведением ВООБЩЕ ничего. Даже прочитать, если это книга, или посмотреть на неё, если это картина.
"Правообладатель вправе по своему усмотрению разрешать или запрещать другим лицам использование результата интеллектуальной деятельности или средства индивидуализации. Отсутствие запрета не считается согласием (разрешением)." - это цитата с википедии.
В Украине это всё описывается в "Законе об авторском и смежных правах", а в РФ, вроде, в главе 70 ГК РФ.
Если автор модельки постановил "Я разрешаю всем, кто купил Скайрим, смотреть на эту модельку в мире Скайрима, но не разрешаю использовать её любым другим способом", то это требование имеет юридическую силу и нарушать это требование - нарушение закона.
Качать фильмы с торрента - нарушение закона потому что владельцы прав на фильмы дали право смотреть их фильмы только тем, кто за это заплатил.
Юзать пиратский виндовс - нарушение закона так как разработчик дал на это право только тем, кто заплатил.
Загуглить фотку грудастой эльфийки и разместить в своем блоге - МОЖЕТ БЫТЬ нарушением закона. Потому что не факт, что автор этой фотографии разрешил так использовать его фотографию.
Я слышал фразы типа "Какая может быть речь об авторском праве в интернете? Если кто-то запостил в инет фотку, то он автоматически разрешает всем делать с этой фоткой что захочется!" - конечно, это не правда.
Кому интересно, лучше, не слушайте ни меня, ни других "экспертов". Есть законы. В свободном доступе. В законах всё описано на простом понятном языке. Читается за 15 минут максимум.
Добавлено (04 Февраля 2019, 02:59) --------------------------------------------- GPL - интересная лицензия. Чел пишет программу, выкладывает её и говорит: "Вот вам программа и её исходный код. Разрешаю всем использовать её как угодно. Хотите что-то в ней изменить - вперёд. Хотите сделать свою программу с другим названием на основе моей - вперед. Вот только... Если вы что-то изменили или сделали другую программу на основе моей, вы обязаны предоставить исходный код своей версии всем желающим на тех же условиях, на которых я предоставил вам свой код! Му-ха-ха-ха!"
И всё, слово автора - закон. Никто не имеет права взять, например, линукс (ядро), что-то в него добавить, а потом спрятать код и пытаться это продать... Потому что когда-то давно Линус Торвальдс так захотел.
Taihou, только нужно знать, что по-умолчанию у тебя вообще нет права как-либо использовать произведение... Мужик не может пойти на улицу, изнасиловать рандомную девушку, а потом заявить "я не подписывал никакого договора, запрещающего мне насиловать людей!". А мы не можем просто достать из архива модельку, как-то её использовать, а потом заявить "я вообще не запускал CK и не видел никакого лицензионного соглашения!". Никаких прав по-умолчанию - вот и всё, что нужно понимать.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №1184
| Тема: Вопросы по скриптам Papyrus
написано: 6 февраля 2019, 18:21
| Отредактировано: Dsion - 6 февраля 2019, 18:32
до и после покупки питомца... Если REF Animal меняется с None на ID зверька, то скрипт нормально отрабатывает и проблема не в этом скрипте и не в проперти на нем...
Правда, там немного неправильно извлекается значение глобальной переменной и я вообще не понимаю, зачем там глобальная переменная, но черт с ним, если работает. Если у тебя несколько торговцев и они продают разных питомцев, то скрипт правильнее будет сделать один на всех... Ну, то есть, никакого упоминания конкретных торговцев и конкретных питомцев в скрипте. Можешь вешать скрипт на самих торговцев, а питомец и его цена будут задаваться в проперти.
Добавлено (06 Февраля 2019, 21:23) --------------------------------------------- С не заполненным проперти pDialogueFollower скрипт точно не мог нормально работать и делать питомца твоим спутником...
Добавлено (06 Февраля 2019, 21:29) --------------------------------------------- Если всё проходит как надо и паучара попадает в алиас квеста DialogueFollower, то вряд ли ты сможешь сказать ему "стой тут" или "идем за мной", если не менял квест DialogueFollower. Там есть ответы только для человеческих голосов и для собачьего голоса. Для паучьего - нету
Как по мне, будет намного лучше вообще забить на квест DialogueFollower и сделать свой с нуля. Там не сложно. Тогда не придется менять ванильный DialogueFollower, не придется ломать совместимость с другими модами на спутников итп.
Miranda_Kusland, можно было бы и показать скрипты, которые "прописаны"... Хотя ладно, щас получу информацию прямиком из космоса... В скрипте обмена вещами у тебя прописано
Miranda_Kusland, могу разве что сказать, что FollowerFollow() - это не та функция, которая делает какого-либо НИП спутником ГГ. Поищи другую... И я бы еще вынес это всё в отдельный квест... Только тогда GetOwningQuest() нельзя будет использовать - нужно будет создать дополнительную проперти. Хочешь в скайпе поговорить?
Добавлено (10 Марта 2019, 10:52) --------------------------------------------- Aksyonov, не помню, чтоб у меня такое было...
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №1187
| Тема: Вопросы по скриптам Papyrus
написано: 11 апреля 2019, 12:47
| Отредактировано: Dsion - 11 апреля 2019, 12:48
akigami, наверное, не создал property TFFaction. А когда создашь, нужно еще не забыть заполнить.
Я уже плохо помню, но там, вроде, можно клацнуть по скрипту (TIF_??) правой кнопкой, выбрать что-то там про Properties, а потом нужно создать новую и заполнить (Fill). Тип: Faction. Если просто создать (но забыть заполнить), скрипт скомпилируется, но работать не будет.
akigami, не припоминаю такого... В крайнем случае, можно добавить глобальную переменную (типа TFFactionMemberCount). Когда добавляешь кого-то во фракцию, прибавляешь 1 к значению переменной. Убираешь из фракции - отнимаешь 1. Тогда можно будет использовать условие GetGlobalValue TFFactionMemberCount < 2
VDsl, не пробовал от админа запускать CK? А вообще, эта ошибка гуглится и там люди дают разные варианты решения. Только первую ошибку гуглить надо, а не вторую. Вторая - это просто следствие вызова программой abort().
В лицензии CK есть пункт, позволяющий Bethesda делать что-угодно с любыми модами. Но я так и не нашел никаких пунктов, позволяющих другим людям делать с чужими модами хоть что-то. Так что моё мнение: закон об авторском праве остается в силе и без разрешения автора ты даже просто выложить его мод на другом сайте не можешь, не говоря уже о вшивании в сборку...
Закон об авторском праве может выглядеть странно с точки зрения среднестатистического пользователя интернета, но если ты когда-нибудь нарисуешь картину или напишешь программу или выложишь секси косплей, то всё поймешь. Ты тратишь время и нервы на своё произведение. И даже если ты не требуешь денег за свой труд, то порой хочется, как минимум, комментов с похвалой.
Те же косплеерши, например, не всегда хотят, ктоб какой-то левый хрен взял их фотки, выложил на своем убогом сайте и получал прибыль с рекламы на этом сайте, в то время, как сама косплеерша не получает ничего. Кроме того, чем больше фотографии распространяются по интернету, тем меньше вероятность, что человек зайдет именно на страничку самой косплеерши и похвалит её. А какой смысл продолжать труд, если тебя за него даже хвалят?
Люди имеют право назначать цену за плоды своего труда.
Miranda_Kusland, вариантов много... Но тебе, как обычно, нужно что-то в духе "Плевать на изящество и совместимость с другими модами. Главное, чтоб легко!"... Ну тогда самое простое и тупое, что можно сделать, - это открыть последнюю (завершающую) стадию квеста ГВ (там есть поля для скриптов, которые выполняются при переходе на эту стадию) и добавить туда https://www.creationkit.com/index.php?title=SetOutfit_-_Actor Ну и две проперти: с NPC и с аутфитом. Всё так же, как с диалогами.
Еще (думаю) можно через LeveledItem и глобальную переменную (если найти подходящую), через скрипт на самом NPC, через скрипт на алиасе. Последний вариант позволил бы выполнить задачу, не меняя ни единой ванильной записи.
Miranda_Kusland, ЧТО ТЫ ТАКОЕ И КУДА ТЫ ДЕЛО ТУ МИРАНДУ, КОТОРУЮ МЫ ЗНАЕМ? Ну второй по простоте способ - это повесить скрипт на саму Элисиф. В скрипт можно добавить ивент (функцию) OnLoad() - он вызывается каждый раз, когда загружается 3d модель объекта. В функции мы проверяем, закончилась ли война (выполнена ли конкретная стадия конкретного квеста), и, если закончилась, меняем аутфит... Готовый скрипт лично я не дам, но готов всячески содействовать в его создании... Выйдет строчек 5, наверное. С алиасом почти так же. Алиас - это если мы не хотим редактировать Элисиф.
А вариант с LeveledItem, наверное, не проканает. Вряд ли случайно найдется какая-то глобальная переменная, которая меняется с 0 именно на 100 именно в момент окончания войны... Этот вариант, как уже писали, позволил бы реализовать "рандомный" аутфит или смену аутфита при достижении игроком какого-то уровня... Можешь сделать, чтоб Элисиф переодевалась по достижении игроком 10-го уровня, если хочешь...
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №1197
| Тема: Вопросы по скриптам Papyrus
написано: 4 мая 2019, 01:01
| Отредактировано: Dsion - 4 мая 2019, 01:03
dog77555, с Actor Base и Template Data ты разобрался? Многие не уникальные НИП созданы на основе заготовок и могут наследовать параметры заготовки (включая инвентарь и список заклинаний). А проблем с изменением одежды уникальным НИП я никогда не встречал - всё работает, как надо.
Missy, там, вроде, кастомная раса, да? Скажи, кто конкретно видит в ней норда. И кого он должен в ней видеть после правок. Мы ведь не можем переозвучить каждый диалог, где упоминается раса ГГ, чтоб её называли демоном или еще чем-то таким...
Возможность была привязать к ней норда, значит есть возможность привязки другой ванильной расы.
Логика хорошая. Честно. Проблема только в том, что никто не привязывал к демонике расу норда... В диалогах есть список возможных фраз и для каждой фразы указаны условия. НИП выбирает первую (или случайную) фразу, для которой выполняются все условия. Например:
1. Привет, эльф! (Условия: раса игрока - эльф) 2. Ой! Не бей меня! (Условия: раса игрока - орк) 3. Ха-ха-ха! Мокрый кошак! (Условия: раса игрока - каджит, идет дождь) 4. Йоу, кошак! (Условия: раса игрока - каджит) ... N. Чё надо, норд (Условия: никаких)
Так что я и не знаю, что можно сделать, не редактируя все диалоги. Если ты возьмешь первый вариант и поменяешь условия вот так: 1. Привет, эльф! (Условия: раса игрока - эльф ИЛИ раса игрока - демоника) тогда в этой конкретной одной фразе демонику будут называть эльфом.