Привет всем! Большое спасибо Сану за курс скриптологии. Вопрос: есть ли утилиты, способные склеивать пексы, то есть, их скрипты, автоматически. Так же, как, например, можно смержить в tes5edit, разные esp? Конкретная проблема: есть пекс с активатором манекенов. Есть много вариантов такого пекса, но нет идеального. Самый лучший, какой мне известен, позволяет сделать манекен живым со сменой поз циклически, дать манекену до 10 видов брони и оружия, и сменить ему расу. И вот тут появляется баг с потерей головы. Тело у манекена - живое, а голова - деревянная. Есть другой пекс-активатор, там всё пофиксено, расы сменяются корректно, но функционал у него - бедный. Только 5 видов брони, и никакой динамики. Хотелось бы их склеить, не влезая в дебри программирования скриптов. Я декомпилировал оба пекса, паскаль изучал, в принципе структура понятна, но сам вручную склеить пока не могу, не хватает знаний и опыта именно по скриптовому языку игры. Такое автоматическое склеивание - возможно? Спасибо. С уважением, маг Иридий.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №2
| Тема: Вопросы по скриптам Papyrus
написано: 5 ноября 2019, 05:59
| Отредактировано: Multigone - 21 апреля 2020, 20:24
yakor77, повесить оба скрипта на один объект легко, но 95%, что это не даст желаемого эффекта... Вручную исправить один из скриптов, подглядывая в другие, тоже можно. А так, чтоб склеить... автоматически... Не думаю... Ну я, конечно, не большой авторитет. Но я последние лет 5 активно изучаю программирование, использовал штук 10 разных языков и лично я не представляю, как такое можно провернуть.
Спасибо за ответ. Дело в том, что этот скрипт - единственный и уникальный, с таким именем другого быть не может. И он - глобальный, действует на все ванильные манекены сразу. Поэтому - только склейка. И, видимо, всё-таки - ручная. Я читал разные форумы, баг с головой - тоже глобальный и фундаментальный, такое происходит не только с манекенами. А, например, при смене тел NPC. Предлагается лечить через Ctri-F4 в Криэйшн Кайт. Есть другой мод, замечательный по богатству функционала. На 100 манекенов. Там проблем с головой нет. Но там надо вручную заморачиваться с установкой каждого отдельного манекена. А мне лениво делать это 100 раз. И хотелось бы в другом моде, где уже есть большой зал манекенов, одним скриптом, поменять все ванильные деревяшки - на живые и со сменой расы. Так что, без данного скрипта, для этой задачи - никак не обойтись. Видимо, всё же придется разбираться в логике автора, и пытаться сделать ручную склейку...
Большое спасибо за подробный, развернутый ответ. Мне хотелось получить результат минимальными усилиями. Вы пишете, что это невозможно, и нужен новый скрипт. Возможно, я когда-нибудь этим и займусь. Но сейчас на это у меня нет ни свободного времени, ни особого желания. Плагин, который придает такой богатый функционал манекенам, меня вполне устраивает. Ладно, фиг с ней, с головой, для музея всё равно они практически у всех фигур будут под шлемами. Не критично. Делать голову, как шлем, или часть тела - это получить её статичной болванкой, и в этом, по сути, нет разницы, между уже имеющейся деревянной головой, и новой, возможной. Вся фишка была - как раз в мимике. А проблема в том, что игра не запоминает сделанные изменения. То есть, голову можно сделать живой, но при следующем посещении локации, она вновь сбрасывается на деревянную. Рекомендация автора пекса (выйти по дефаулту, и пересохраниться на чистый сэйв) - тут не помогает. Короче, для подвальной кузницы [1] и музеев [2, 3] я решил оставить этот богатый пекс-активатор [4], а для домов ГГ - поставить с заменой вручную "полностью живые" манекены из [5]. Там их немного. Такое решение мне представляется оптимальным по балансу нагрузки на память и процессор компьютера. Ранее был упомянут бедный на функционал, но сохраняющий голову с мимикой и меняющий расу, плагин [6]. Благодарю всех за внимание и помощь, вопрос закрыт.
Моды и плагины (убрать пробелы, а то робот ругается): -------------------- 1. Подвал кузнеца / Blacksmith's Basement by Bluntaxe h t t p : / / w w w . nexusmods . com/skyrim/users/2521167 2. Хранилище коллекционера h t t p s : / / w w w . playground . ru/files/tes_5_skyrim_hranilische_kollektsionera-70221/ 3. Музей на столе / Museum on a table h t t p s : / / gamer-mods . ru/load/skyrim_le/doma_i_lokacii/museum_on_a_table/15-1-0-1542 4. MannequinActivatorSCRIPT h t t p : / / tiarum . com/wiki//MannequinActivatorSCRIPT 5. Манекены с анимацией h t t p : / / gamer-mods . ru/load/tes_v_skyrim/gejmplej_i_animacija/manekeny_s_animaciej/16-1-0-1755 6. Фикс манекенов / Mannequin Script Fix h t t p s : / / w w w . playground . ru/files/tes_5_skyrim_mannequin_script_fix-69803/
С уважением. Маг Иридий.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №4
| Тема: Вопросы по скриптам Papyrus
написано: 4 января 2020, 09:58
| Отредактировано: Multigone - 22 апреля 2020, 15:14
Уважаемые коллеги! Возможно ли написать скрипт, который позволит перезаряжать Звезды Азуры душами, без охоты на их владельцев, или синтаксис папируса этого не допускает? Известны ли Вам примеры такого скрипта?
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №5
| Тема: Вопросы по скриптам Papyrus
написано: 7 января 2020, 22:30
| Отредактировано: yakor77 - 7 января 2020, 23:50
Коллега Multigone, в тему Вашей дискуссии о заполнении камней душ. Я в этой задаче увидел разные подходы - и в смысле оптимизационной задачи линейного программирования (транспортная задача, задача о раскрое), и тн "многостанковые задачи", но... предпочитаю излишне не заморачиваться. В ТРИЗ есть такой приём "избыточного действия": сделать с избытком, а потом убрать лишнее. Предлагаю рассмотреть такое решение. Камни душ, по сути, те же деньги, а деньги можно взять в кредит. При убийстве жертвы зачарованным на захват души оружием, ГГ+ всеми его спутниками с таким оружием, под эту душу, автоматически, через аддитем, создается ближайший по объему и качеству камень душ, от мелкого до великого и чёрного, и помещается в рюкзак убившего, соответственно ГГ или спутника. Назовём это "кредитным камнем душ" (ККД), который выдает "банк Каирна Душ". (Если кому интересно, идею банка можно развить, навесив на Валерику, маму Сераны, функции банкира этого банка, а саму Серану - сделать агентом банка, чтобы каждый раз самому в Каирн или Волкихар не мотаться. Или филиалы открыть по всем городам, и тавернам. тут простор для фантазии.) Доступ ГГ к этим камням заблокирован: "хоть видит око, да зуб неймет". Если у ГГ имеется в рюкзаке набор пустых камней душ, он, на ближайшем привале, в спокойной обстановке, может провести эквивалентный обмен, соотв. заклинанием. Пустые камни душ, по суммарной ёмкости, удаляются, а погашенные таким образом кредиты ККД - активируются в доступе. Если в рюкзаке суммарного объема камней недостаточно, оставшиеся ККД остаются неактивированными, до следующей сделки. Для упорядочивания списка так же используем "жадный алгоритм" задачи о рюкзаке (она же задача директора, она же задача одного станка). То есть, ранжировка от великого до мелкого. Можно не заморачиваться и блокировкой, и с торговлей, сразу делать ККД активными, автоматически удалять всё, что есть пустого из камней в рюкзаке, но остаток, если он не погашен, повесить на ГГ, как кредитный долг. При добыче любым способом пустых камней душ, они автоматически удаляются, по своей стоимости (их объему), в счет погашения кредита. Если развивать квестовую идею банка, можно ввести и проценты за крелит. Чтобы до бесконечности не раздувать кредитный пузырь, ввести кредитный лимит, и завязать его повышение на уровень игрока. Ввести прокачку навыка, через посещения Каирна, и добросовестность уплаты долга и процентов, с понижением процентной ставки и повышения лимита. (И тп, это на любителя, но лично я, как читер, не любитель квестовых заморочек. По сути, я давно пользуюсь такой кредитной системой, просто имея в рюкзаке заведомо большой запас пустых камней каждого сорта, с поправкой на частотность.) Как Вам такое решение? Его главное преимущество - ни одна убитая душа попусту не пропадает, экономится время и вычресурс на расчете имеющихся емкостей.
Myprism, похоже на мой концепт, но от моего отличается. У меня предлагается под каждую захваченную душу автоматически создавать свой, ближайший по объему, камень. Даже если у игрока нет ни одного пустого камня. Чтобы не было соблазна раздувать кредитный пузырь, вводится лимит, зависящий от уровня игрока. Пока долг не погасишь, выбрав весь лимит - нового кредита не получишь. Можно ввести два банка, или две кредитных линии, - белый и черный, для соотв. цвета камней. Короче, тема богатая, можно поиграться с банковской практикой. Так же в Рифтене могут ошиваться ростовщики душ, упыри из вампиров, которые дадут кредит, но под людоедский 1% в день. А выколачивать уплату из Каирна может заявляться вышибала, какая-нибудь бабайка. Есть моды, которые зачарованнные предметы разочаровывают в плавильне обратно, дополнительно получая камешки. Есть моды, которые позволяют, в той же плавильне, переплавлять одни камни в другие, за деньги. Так что можно предусмотреть возможность погасить долг обычными деньгами. Тут простор для фантазии. Но, главное, мой метод обходит трудности классических оптимизационных задач линейного программирования, с ограниченными рсурсами. Ресурс Каирна бесконечен, в этом главная фишка!
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №7
| Тема: Вопросы по скриптам Papyrus
написано: 2 февраля 2020, 18:31
| Отредактировано: Multigone - 21 апреля 2020, 20:54
Эх, если бы собрать команду программистов, и воссоздать, реконструировать наш любимый Скайрим - на Юнити! Со скриптовым языком. С модульностью, но без барьера 255. С 64-битным кодом. Главное примущество - открытый, непроприоритарный, код. Плюс современная реализация.
Истинно надежный способ предусматривал бы возможность того, что квест будет завершен командой в консоль :-P
Коллега Dsion, не всегда это (консольное завершение квеста) - необходимо. К тому же маркёры завершения очередного этапа квеста, бывают настолько разреженными, что имеет смысл поставить свой маркёр, на каком-то промежуточном этапе, не предусмотренном ванилью.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №9
| Тема: Вопросы по скриптам Papyrus
написано: 17 февраля 2020, 07:46
| Отредактировано: Multigone - 21 апреля 2020, 19:31
Кто может написать скрипт, чтобы после окончания диалога NPC становился агрессивным?
- коллега, а зачем его писать, он уже есть! В ванильной версии есть диалоги, например, о кабацкой дуэли на кулачках, или тренинги по обучению владению холодным оружием. Обычный условный оператор. Если договор заключен, то противники начинают драться. Драка прекращается так же при выполнении заявленного условия.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №10
| Тема: Вопросы по скриптам Papyrus
написано: 5 апреля 2020, 11:42
| Отредактировано: yakor77 - 5 апреля 2020, 11:46
По поводу раздевания перед плаванием и одеванием после. Задача давным-давно решена. Я знаю, по крайней мере, два мода, в котором она решена на автомате. Это мод (целая локация) "Подземная баня", и мод (тоже целая локация, русская локализация Вильи) "Алиса" (она может научить героя соотв. магическому заклинанию). В UI (новый интерфейс) можно поставить самораздевание и самоодевание - на горячую клавишу. То есть, можно было бы залезть в эти моды, и выдернуть оттуда текст готового скрипта. Но не, неохота возиться, не интересна сама идея. Сама идея меня не зажигает. Работает в чужих модах - и пусть работает, и не лезь.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №11
| Тема: Вопросы по скриптам Papyrus
написано: 6 апреля 2020, 12:30
| Отредактировано: Multigone - 21 апреля 2020, 19:28
Myprism, Мелиссу я тоже давно знаю, и тоже не люблю её тест-сон перед началом встречи. Вообще она сильно замороченная, капризная и ревнивая дама. Алиса - её урезанная версия. Но все они - клоны Вильи. Ладно, есть еще целый пул с раздеванием - это всё, что связано с СексЛаб, и сопутствующими модами. И есть пул модов, которые связаны с засыпанием и его анимацией, в некоторых выставляется условие спать в пижаме, или вообще нагишом. Помимо "Подземной бани", есть мод, модифицирующий поместья, и там тоже есть своя банька с раздеванием. Там же есть и туалет типа сортир, в котором можно присесть, и тоже приходится частично раздеваться. Есть мод "Магазин-ателье", его скрипт использован в Мелиссе - она застревает в магазинах готовой одежды, и быстро меряет всё, что там есть. Есть мод, раздевающий и одевающий манекены. Есть мод по быстрому собиранию лута с покойников, он тоже мгновенно их раздевает. Короче, задача имеет три части. Каузу - собственно скрипт раздевания или одевания, полного или частичного, своего или чужого, живого или мертвого, перса. Повод - тот самый триггер (граница бассейна, вход в парилку бани или в примерочную магазина, укладывание спать и просыпание, начало и завершение секса). И условие (магический эффект, или галочка в квадратике опции мода, или горячая эф-клавиша).
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №12
| Тема: Вопросы по скриптам Papyrus
написано: 14 апреля 2020, 21:09
| Отредактировано: Multigone - 22 апреля 2020, 13:32
myav, очень часто мешает необходимость подтверждения нанесения яда вручную. В случае с нанесением яда - есть мод, которое это надоедливое подтверждение убирает. nexusmods . com / skyrim / mods / 33916/
Есть мод, который автоматически наносит яд на оружие, пока он неисчерпается в запасах. Но там надо подтверждать вручную. tes-game . ru / load / skyrim / gejmplej / 7640 / 47-1-0-9692
Есть мод на изменение количества ударов ядом, тут устранен эффект подверждения. tesall . ru / files / file / 9078-otravlenie-orujiya / gamer-mods . ru / load / skyrim_se / gejmplej / kela_poison_project / 158-1-0-7630
Наконец, есть мод на постоянный яд, наносишь только один раз, и навсегда. mod-all . clan . su / load / skyrim / raznoe / neogranichennoe_dejstvie_jada / 15-1-0-129
Об иных способах нанесения уроня ядом (кольчуга, щупальца, посох магнуса, ядовитые пауки, ядовитые руны, и пр.): tiarum . com / wiki / Skyrim : %D0%A3%D1%80%D0%BE%D0%BD_%D1%8F%D0%B4%D0%BE%D0%BC
так как нету ванильного оружия с ядом, чтобы можно было просто удалить меч, и добавить меч с ядом, как он прописал на хил бутылки
Так вот, это не точно. Ранее я давал Вам подсказку, цитирую: "Об иных способах нанесения уроня ядом (кольчуга, щупальца, посох магнуса, ядовитые пауки, ядовитые руны, и пр.)": ссылка. Очень рекомендую прочесть эту статью, и обратить внимание на перечисленное. Теперь по поводу консоли. Да, консольной команды именно по нанесению именно яда - нет. Да, эквипмент тут - не работает. Но есть консольные команды по зачарованию оружия. Не на пентаграмме душ. Следовательно, общий алгоритм такой: 1) узнать набор эффектов, который присущ данному яду в данной бутылочке 2) удалить бутылочку из инвентаря 3) применить данный конкретный набор параметров от яда - к зачарованию оружия. (Ограничение на два зачарования - легко снимается. Есть куча модов, которая позволяет нанести на одно оружие до 10 разных зачарований.) Зачарование предметов и оружия. Для зачарования используйте команду: PlayerEnchantObject [id предмета] [id зачарования №1] [id зачарования №2]. Предмет или оружие должно быть без улучшений, а навык зачарования желательно равен 100. Каждый предмет может принять только два зачарования! Далее ниже список всех ID зачарований. (список легко ищется по Инету, например, здесь: ссылка.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №14
| Тема: Вопросы по скриптам Papyrus
написано: 15 июня 2020, 02:30
| Отредактировано: yakor77 - 15 июня 2020, 02:36
Приветствия коллегам! Есть проблема, хотелось бы концептуально обсудить и посоветоваться. Проблема связана со входом в дверь трех самостоятельно возводимых поместий - "Озерное", и др. С другими дверями, при тех же условиях, вылетов не происходит. Я внимательно изучил большинство доступных в Сети материалов по теме, проблема известная. Решают её по-разному, греша кто на перегрузку памяти, кто на манекены, кто на персонажи внутри здания, и пр. Я поэкспериментировал на собственной сборке, выстроив самый примитивный малый дом, и последовательно исключая всевозможные факторы (вплоть до полной переинсталляции ванильного ядра, и уменьшения дополнительных модов в сборке, тоже до ванильного ядра). Предполагаю, что там сидит какой-то баг, причем сидит он в движке, и который так и не пропатчен. Видимо, всякая перегруженная модами сборка, становится крайне чувствительной и нестабильной, к скачку напряжения, то есть, к загрузке-выгрузке. А двери в этих поместьях, в силу неизвестного мне бага, просто слабое звено, где тонко - там и рвётся. Я вынес эту дверь, прямо в игре (дисэйбл), и поставил вместо неё другую, из стороннего мода-конструктора "Построй свой дом". Пришлось залезть и в код, через криэйшн кит, и тес5эдит. Убрать родной для конструктора скриптик, навесить свой. Всё заработало. Но это сложное решение, оно не для всех. Есть предложение обдумать и обсудить концепт мягкого решения, реализованного в известном моде "Открытые города Скайрима". Там двери в город открываются, и можно провести свободный проход, без скачка загрузки-выгрузки, как под обычной аркой. Вопрос: можно ли написать аналогичный скрипт, и навесить его на эти три проклятые двери в поместьях, через магию, не прибегая к примененной мною хирургической операции? Заранее спасибо за доброжелательный ответ. (Свой код не приведу, не просите - вопрос принципа, для чистоты данного эксперимента).
Здравствуйте, Майпризм! Спасибо за развернутую, обстоятельную консультацию. Про конфликт с навигационной сеткой я как-то не задумывался, это интересный аспект проблемы, обдумаю. Я понял, из Вашей консультации, что решение Открытых городов мне в данном случае никак не поможет, это совсем другая тема и другой способ. Я понимаю, что весь Скайрим лучше писать самому и системно, чем сшивать лоскутное одеяло из чужих кусков-модов, и лепить заплатку на заплатку. Но это требует очень большой мощности, действие = время*деньги, чего у меня, естественно, нет. Так что, приходится исходить из того, что есть, к сожалению.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №16
| Тема: Вопросы по скриптам Papyrus
написано: 29 июня 2020, 09:08
| Отредактировано: yakor77 - 29 июня 2020, 09:16
Здравствуйте, Майпризм! Есть вопрос к Вам, ответа на который в Сети я так и не нашел. Он касается распределения "очков навыков", между магией, здоровьем и запасом сил. Бывает, что в игре случайно нажменшь не ту клавишу, и попадаешь в режим "на севере компаса по Таб", то есть, в режим "распределения "очков навыков". И тут ты попал! Если набежало очень много этих очков - пока их всех не прощёлкаешь, мышкой и энтером, интерефейс тебя не отпустит. А прощелкивать их, когда их многие тысячи - крайне лениво, да и клаву с мышкой разбивать тыканьем жалко. Набегают эти тысячи, например, при зачаровании. И гонят они уровень к тысяче и выше, потом приходится всё сбрасывать в реальные значения. Однако, консоль при этом режиме - открывается. И это лазейка, можно запустить батничек. Обычные сетевые советы, типа "сменить расу", "воспользоваться Чёрной книгой Сон наяву", или "сбросить уровень консольными командами" - здесь не помогают. Существуют и разные экзотические моды,типа "калькуляторов перков" или даже "зелий обнуления" и "обмена на души драконов". Всё это работает только в стационарном режиме, когда очки - уже распределены. Многие говорят в Сетях, что этот режим - жёсткий, избавиться от него - невозможно. У меня тогда вопрос: можно ли написать такой скрипт, который быстро распределит эти "очки навыков" в автоматическом режиме, без нажатий игроком на кнопки и клавиши? Его можно написать в виндовых макросах, но это грубое решение. Интересует именно скайримовский скрипт. Тут должен быть цикл "пока" (пока все очки не распределены), и обращение к прерываниям, чтобы за игрока "нажимать клавиши". Заранее благодарен за доброжелательный и концептуальный ответ. (Меня, как всегда, интересует идея, а не код, логика построения программы.)
либо за накопленный не распределенный бонус уровней.
- да-да, вот именно эта переменная меня и интересует, тогда всё можно было бы сделать гораздо проще - обнулить её нафиг, до распределения очков навыков, и не заморачиваться! Но, увы, я её не нашёл. Возможно, она генерится динамически, то есть, не сохранена в сэйве, а активируется в ОЗУ, по коду движка, после нажатия соотв. клавиш. Интерфейс у меня - продвинутый, СкайЮАй. Но, и в ванильном интерфейсе, - всё то же самое, значит, дело не в нём. Если бы значение было записано в сэйве, я бы вообще с вопросом не обращался. Это была бы элементарная задача на стандартные консольные команды. Но, увы... Короче, вопрос: как выловить в оперативной памяти глобальную переменную, с неизвестным именем, по её действию, то есть, по регулярному к ней обращению, перехватить прерывания, и либо ускорить процесс автоматически, либо обнулить эту переменную?
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №18
| Тема: Вопросы по скриптам Papyrus
написано: 30 июня 2020, 16:36
| Отредактировано: Multigone - 2 июля 2020, 13:30
в сохранении есть несколько переменных с именем Leve
- не, это совсем не то. Я ранее именно к такому выводу и пришёл, что это всё движком генерится. Управление "Ок" возможно с клавиатуры, а вот три кнопки - магия, здоровье и запас сил - только мышью. Всё, спасибо за консультацию, я понял, что пришёл к верным выводам, Вы мне время на самостоятельное изучение сэкономили. Буду делать виндовый макрос, я это делать умею. Он за меня, в цикле, будет распределение очков прощёлкивать. Грубо, но решение единственное. Этот вопрос закрыт. Да, и по предыдущему - я так и не понял, что влияет на вылет при заходе в двери. Тоже оставил прежнее грубое решение: вынес штатные двери, вставил свои, навесил активаторы. Против лома - нет приема!
Добавлено (01 Июля 2020, 15:15) --------------------------------------------- Здравствуйте, Майпризм! Возникла вот такая идея дальнейшего развития Скайрима, хотелось бы с Вами обсудить. Мотивация: сделать НПС поумнее и поинтереснее, при этом, сэкономив собственный труд программиста. Назовём её "Динамическое меню диалогов" (ДМД). Предположим, что в игре мы можем активировать у всякого НПС пункт меню "Давай поговорим о...", в котором можно будет строить ветки диалогов, за игрока, и за НПС. Всё это сохраняется в сэйве, но есть возможность и сгенерить в отдельном текстовом файле болванку скриптового кода. Который, уже можно будет, потом, нормально вставить в собственный мод и откомпилировать, навесив на пункты меню - соотв. действия героя и НПС, вместо пустышек-заглушек "никакого действия". Как Вам такая идея, реализуема ли она средствами скриптового языка?
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №19
| Тема: Вопросы по скриптам Papyrus
написано: 2 июля 2020, 12:09
| Отредактировано: Multigone - 2 июля 2020, 13:30
yakor77, мне это очень далеко. Не дружу я с диалогами
Майпризм, понятно, спасибо за ответ. Сам подумаю над реализацией. Смысл такой идеи в том, что дерево диалогов генерится в игре, в игровом контексте. А не абстрагированно, "по памяти", в редакторе. Это помогает не компилятору - это помогает человеку, его интуиции, его творческому началу. Чтобы диалоги получились точные и правильные, "к месту и времени". Примерно так.
Здравствуйте, коллега Майпризм! К теме "Дверь, по прозвищу Зверь (вылет из поместий). Как Вы помните, из переписки ранеее по этой теме, мне тогда помогло грубое силовое решение. Я вынес внутренню дверь, соединявшую бывший вестибюль поместья, с главным залом, и вылеты прекратились. Но хотелось бы докопаться до причин. И я докопался! Многочисленные жалобы на форумах, на тот же баг, причем связанный именно с манекенами, привели к источнику конфликта. Им оказался скрипт манекенов МанекенАктиваторСкрипт. Подскажите, есть ли у Вас концептуальные идеи, о причине странной нелюбви модифицированных манекенов - к внутренней двери? Мод на манекены - не только их оживлял, превращая в анимированных людей, он ещё и запрещал им гулять свободно по всему поместью, и избавляться от надетой на них броньки. Интересно, в чём тут проблема, как это всё взаимосвязанно? Ваши подсказки, как всегда, сильно сэкономили бы мне время на дальнейший самостоятельный анализ и устранение проблемы. Заранее благодарен.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №21
| Тема: Вопросы по скриптам Papyrus
написано: 23 июля 2020, 12:02
| Отредактировано: Multigone - 26 июля 2020, 19:19
Здравствуйте, Майпризм! Прежде всего, приятного, надежного и успешного Вам восхождения на Эльбрус! Что же касается манекенов, то тут простая логика. 1) Вылеты были при установленных модах на манекены, из-за двери, когда я дверь вынес, вылеты прекратились. 2) В сохранении, где старая ванильная дверь была на месте, после вычистки всех доп. модов по манекенам до ванили - вылеты так же прекратились. 3) Более нигде, кроме трёх поместий, конфликтов модов на манекены с помещениями - не было. Ни для ванильных помещений, ни для модовских. 4) Вывод: моды на манкены конфликтуют с дверьми поместий, и более - ни с чем. Причем конфликт шёл в части манекенных скриптов. То есть, имеется какой-то баг, именно в поместьях, и связанный именно с манекенами. В силу того, что ванильные манекены сильно забагованы и зело глюкавы (бродят по поместю, прячут одежду, и пр.), доп. моды на манекены - крайге необходимы. Отказаться от них не хочется. 5) Опять есть грубое силовое решение: вынести все манекены из всех поместий. В принципе, они мне там и не нужны. Скорее всего, я так и сделаю. Но всё же, интересно докопаться до причины, и написать патч. Неофициальные патчи от Бетесды - эту проблему не лечат. Так что, буду разбираться, это интересная логическая задачка. Но Ваши советы приму с благодарностью. Это экономит труд и время.
Добавлено (26 Июля 2020, 05:40) --------------------------------------------- Здравствуйте, коллега Майпризм! Продолжаю рассказывать о решении проблемы, связанной с вылетами в пеместьях, манекенами и дверьми. Как вернётесь из тпуска - продолжим беседу. Я локализовал данную проблему. Вылеты "обеспечивал" один-единственный хулиганский скрипт на манекены. Другие скрипты, от других модов, работают нормально, стабильно с игрой, и совместно между собой. Обзор по этим сторонним модамдам чуть позже. А пока расскажу про этого хулигана. Этот файл называется MannequinActivatorSCRIP.pex, размер файла 17065 байт, дата создания 04.10.2013. Привожу описание скрипта дословно и полностью. Сетевую ссылку не даю, здесь это нарушение, но гуглится на раз. "MannequinActivatorSCRIPT - скрипт взамен дефолтного скрипта манекена. Автор: AleksTirex
Возможности: 1. Манекен рассчитан на 32 слота одежды, поэтому можно собрать совершенно любой комплект одежды, всё будет зависеть от совместимости самой одежды. 2. На манекен можно так же надевать оружие и стрелы. 3. Стрелы будут экипироваться только при экипированном луке. 4. Скрипт поддерживает работу с SKSE, при этом он полностью работоспособен и без него. При использовании SKSE одежда меняется без задержек, как это на дефолте. Так же с SKSE манекен может использовать парное оружие с соответствующей анимацией. 5. Манекен имеет разные анимации, и боевую стойку тоже. Анимация выбирается в случайном порядке автоматически. Есть кнопка для сманы анимации. В режиме с оружием кнопка работает как переключение боевой стойки и стойки "вольно". 6. В режиме сника (скрытности) при активации манекена будет возможность менять расу манекена на несколько дефолтных рас. Т.к. ESP не используется, то названия сообщения и кнопок будут от основного режима. При этом средняя кнопка - выбор расы, при нажатии на неё в верхнем левом углу появится сообщение о выбранной расе, и окно/сообщение закроется. При следующем нажатии - следующая раса, и т.д. Левая кнопка - активация выбранной расы. После смены расы все дефолтые манекены будут этой расы. В случае удаления этого скрипта, надо ОБЯЗАТЕЛЬНО поменять расу манекена на дефолтную, т.к. смена расы - процесс необратимый и игра сама расу не вернёт, иначе манекены так и останутся с этой расой (в этом случае при первой же перезагрузке игры у манекенов появится проблема с отображением головы, это дефолтный баг игры, а данный скрипт умеет с этим багом бороться) 7. Поддерживаются манекены из модов и со своими собственными расами. 8. Это манекен, а не сундук для хранения вещей и не просто актёр, поэтому не стоит требовать и ждать, что и без того достаточно глючная анимация Скайрима отрабатывала с исключительной точностью.
Установка простая - положить файл скрипта в папку Scripts. В архиве имеется исходник, но для работы самого скрипта в игре он не нужен. Удаление: вернуть манекенам дефолтную расу, если её меняли, и удалить файл скрипта."
Вот с этим краксом-пексом, чтобы сделать фикс, я сейчас и разбираюсь. Потому, как этот скрипт - хорошо работает везде, но только за пределами домов трёх поместий.
Добавлено (26 Июля 2020, 05:47) --------------------------------------------- Чтобы наш разговор был предметным, привожу полный текст этого скрипта.
Scriptname MannequinActivatorSCRIPT extends Actor
import debug import utility import game
idle Property Pose01 Auto idle Property Pose02 Auto idle Property Pose03 Auto
Form Property ArmorSlot01 auto hidden Form Property ArmorSlot02 auto hidden Form Property ArmorSlot03 auto hidden Form Property ArmorSlot04 auto hidden Form Property ArmorSlot05 auto hidden Form Property ArmorSlot06 auto hidden Form Property ArmorSlot07 auto hidden Form Property ArmorSlot08 auto hidden Form Property ArmorSlot09 auto hidden Form Property ArmorSlot10 auto hidden
Form Property EmptySlot auto hidden
Message Property MannequinActivateMESSAGE Auto {Message that appears upon activating the mannequin}
Message Property MannequinArmorWeaponsMESSAGE Auto {Message that appears when you attempt to place a non-armor item}
int Property CurrentPose =1 Auto {The pose the Mannequin starts in, and is currently in. DEFAULT = 1}
;----------------;
Form[] kArmor
Race akBaseRace Form kWeapon Form kWeaponL Form kAmmo bool bAlertDone bool bAlert bool bNoMessage bool bSKSE int ihpc int iNewRace float fTime
;-----------------;
Event OnInit() if GetState() != "StateStart" gotoState("StateStart") endif endEvent
Event OnCellAttach() if GetState() != "StateDefault" gotoState("StateStart") endif endEvent
Event OnCellLoad() if GetState() != "StateDefault" gotoState("StateStart") endif endEvent
auto State StateStart
Event OnBeginState() ; Notification("Start New Script Mannequin!") gotoState("StateDefault") StartScript() EndEvent
Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if akBaseItem as Armor if aiItemCount > 1 && akSourceContainer == GetPlayer() RemoveItem(akBaseItem, aiItemCount - 1, true, GetPlayer()) endif AddToArmorSlot(akBaseItem) elseif akBaseItem as Weapon if ValidWeapon(akBaseItem) if GetEquippedWeapon() == none kWeapon = akBaseItem EquipItem(akBaseItem) elseif GetEquippedWeapon(true) == none && ValidWeapon(GetEquippedWeapon()) kWeaponL = akBaseItem EquipItemEx(akBaseItem, 2) else if kWeapon RemoveItem(kWeapon, GetItemCount(kWeapon), true, GetPlayer()) endif kWeapon = akBaseItem EquipItem(akBaseItem) endif else if kWeapon RemoveItem(kWeapon, GetItemCount(kWeapon), true, GetPlayer()) kWeapon = none endif if kWeaponL RemoveItem(kWeaponL, GetItemCount(kWeaponL), true, GetPlayer()) kWeaponL = none endif kWeapon = akBaseItem EquipItem(akBaseItem) endif elseif akBaseItem as Ammo if kAmmo && kAmmo != akBaseItem UnequipItem(kAmmo) RemoveItem(kAmmo, GetItemCount(kAmmo), true, GetPlayer()) endif kAmmo = akBaseItem EquipCurrentWeapon(false) else MessageBox("This item not for a Mannequin.") RemoveItem(akBaseItem, aiItemCount, true, GetPlayer()) endif if bSKSE QueueNiNodeUpdate() endif endEvent
Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference) WaitMenuMode(0.2) if akBaseObject as Armor RemoveFromArmorSlot(akBaseObject) RemoveItem(akBaseObject, GetItemCount(akBaseObject), true, GetPlayer()) endif if akBaseObject as Weapon if akBaseObject != kWeapon && akBaseObject != kWeaponL RemoveItem(akBaseObject, GetItemCount(akBaseObject), true, GetPlayer()) endif endIf endEvent
Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference) if akBaseObject as Weapon EquipCurrentWeapon(false) endIf endEvent
Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) if akBaseItem as Ammo EquipCurrentWeapon(false) EquipCurrentArmor() endIf if akBaseItem as Weapon EquipCurrentArmor() endIf endEvent
Event OnEndState() if bSKSE QueueNiNodeUpdate() endif endEvent
endState
Event OnAnimationEvent(ObjectReference akSource, string asEventName) if akSource == self if asEventName == "WeaponDraw" int iNext bAlert = false While (GetAnimationVariableBool("IsEquipping") || GetAnimationVariableBool("IsUnequipping")) && iNext < 45 Wait(0.1) iNext += 1 endWhile if !GetAnimationVariableBool("IsEquipping") && !GetAnimationVariableBool("IsUnequipping") EnableAI(false) endif endif if asEventName == "Unequip_Out" || asEventName == "Magic_UnEquip_Out" int iNext bAlert = false While (GetAnimationVariableBool("IsEquipping") || GetAnimationVariableBool("IsUnequipping")) && iNext < 40 Wait(0.1) iNext += 1 endWhile if !GetAnimationVariableBool("IsEquipping") && !GetAnimationVariableBool("IsUnequipping") EnableAI(false) endif endif endIf endEvent
;-----------------;
Function RegisterAnimation() RegisterForAnimationEvent(self, "WeaponDraw") RegisterForAnimationEvent(self, "Unequip_Out") RegisterForAnimationEvent(self, "Magic_UnEquip_Out") endFunction
Function PlayDefaultPose() if CurrentPose == 1 PlayIdle(Pose01) elseif CurrentPose == 2 PlayIdle(Pose02) elseif CurrentPose == 3 PlayIdle(Pose03) endif endFunction
Function EquipCurrentArmor() int index While index < 32 if kArmor [index]!= none Form kArmorTemp = kArmor [index]if GetItemCount(kArmorTemp) if !IsEquipped(kArmorTemp) EquipItem(kArmorTemp) endif else kArmor [index]= none endif endif index += 1 endWhile if bSKSE QueueNiNodeUpdate() endif endFunction
Function EquipCurrentWeapon(bool bWP = true) if kAmmo if GetItemCount(kAmmo) if !IsEquipped(kAmmo) && GetEquippedItemType(1) == 7 EquipItem(kAmmo) elseif IsEquipped(kAmmo) && GetEquippedItemType(1) != 7 UnequipItem(kAmmo) endif endif endif if kWeapon && bWP if GetItemCount(kWeapon) if !IsEquipped(kWeapon) EquipItem(kWeapon) endif else kWeapon = none endif endif if kWeaponL && bWP && IsEquipped(kWeapon) if GetItemCount(kWeaponL) if !IsEquipped(kWeaponL) && ValidWeapon(kWeaponL) EquipItemEx(kWeaponL, 2) endif else kWeaponL = none endif endif endFunction
bool Function ValidWeapon(Form akItem) bool bValid if bSKSE && akItem as Weapon if (akItem as Weapon).GetWeaponType() >= 1 && (akItem as Weapon).GetWeaponType() < 5 bValid = true endif endif return bValid endFunction
Function AddToArmorSlot(Form akBaseItem) int index = 0 if akBaseItem as Armor index = kArmor.Find(none) if index > -1 kArmor [index]= akBaseItem EquipItem(akBaseItem) else RemoveItem(akBaseItem, 1, true, GetPlayer()) Notification("Inventar is Full, no empty clote!") endif endif endFunction
Function RemoveFromArmorSlot(Form akBaseItem) int index = kArmor.Find(akBaseItem) if index > -1 kArmor [index]= none endif endFunction
Function RemoveEmptySlot() int index While index < 32 if kArmor [index]!= none if !IsEquipped(kArmor[index]) kArmor [index]= none endif endif index += 1 endWhile endFunction
Function FindRace() if bNoMessage == false MessageBox("В режиме 'сник' менется раса манекена. 'Средняя кнопка' - выбор расы, её название в верхем левом углу. При каждом нажатии кнопки меняется выбор расы и окно закрывается. 'Левая кнопка' - старт замены на выбранную расу. 'Правая кнопка' - отмена." ) bNoMessage = true endif int buttonPressed = MannequinActivateMESSAGE.Show() if buttonPressed == 0 ChengRace() elseif buttonPressed == 1 iNewRace += 1 if iNewRace == 1 Notification("Manakin Race") elseif iNewRace == 2 Notification("Nord Race") elseif iNewRace == 3 Notification("Orc Race") elseif iNewRace == 4 Notification("Argonian Race") elseif iNewRace == 5 Notification("Khajiit Race") elseif iNewRace == 6 Notification("HighElf Race") elseif iNewRace == 7 Notification("Imperial Race") else Notification("Default Race") iNewRace = 0 endif endif endFunction
Function ChengRace() Race akNewRace if iNewRace == 1 akNewRace = GetFormFromFile(0x0010760A, "Skyrim.esm") as Race elseif iNewRace == 2 akNewRace = GetFormFromFile(0x00013746, "Skyrim.esm") as Race elseif iNewRace == 3 akNewRace = GetFormFromFile(0x00013747, "Skyrim.esm") as Race elseif iNewRace == 4 akNewRace = GetFormFromFile(0x00013740, "Skyrim.esm") as Race elseif iNewRace == 5 akNewRace = GetFormFromFile(0x00013745, "Skyrim.esm") as Race elseif iNewRace == 6 akNewRace = GetFormFromFile(0x00013743, "Skyrim.esm") as Race elseif iNewRace == 7 akNewRace = GetFormFromFile(0x00013744, "Skyrim.esm") as Race else akNewRace = akBaseRace Notification("Current my Default Race") endif if akNewRace UnequipAll() RemoveEmptySlot() kWeapon = none SetRace(akNewRace) AllowPCDialogue(false) HeadReset() EnableAI() Wait(0.3) EnableAI(false) endif endFunction
Function HeadReset() if GetRace() != akBaseRace Race akCurrentRace = GetRace() Race akTempRace = GetFormFromFile(0x00013748, "Skyrim.esm") as Race Wait(0.1) if akTempRace SetRace(akTempRace) endif Wait(0.1) SetRace(akCurrentRace) Wait(0.1) SetRace(akCurrentRace) endif endFunction
Здравствуйте, Андрей! Вы просите помочь: [quote=Andrey059918;1336689]Мне нужно, чтобы после создания ObjectReference в мире, его RefID (а-ля 4201B14D) отобразился на экране.[/quote] Согласен, видеть ID сразу, без заморочек с inv и сундуками - было бы очень удобно. В стиле "Капитана Очевидность", предлагаю простое, грубое, надежное, но... очень скучное и трудоёмкое решение. Ручками, в редакторе Tes5Edit, для каждой позиции номенклатуры, прописываем ID, сразу после первого значимого слова названия этой позиции. Например: "Даэдрическая булава 000139b8". Чтобы не было так скучно, можно, под Виндовз, написать простой макрос, цикл "Пока", который берет в редакторе ID, и добавляет его в номенклатуру, по всем строчкам базы данных, пока не закончатся все позиции в списке. Почему в конец названия? Чтобы не нарушить алфавитный порядок сортировки в редакторе (я обычно юзаю расширенный UI редактор). Да, файлы игры частично перестанут быть совместимыми, станут уникальными. Но ведь Вы же играете - для себя? Зачем Вам эта "совместимость"? Есть решение более изящное, но тоже трудоемкое. Изменить скрипт редактора UI. Добавить в него колонку с ID. Но это надо глубоко изучить скрит данного редактора, лично мне лениво и некогда это делать.
[b]Добавлено[/b] (28 Июля 2020, 03:39) --------------------------------------------- Здравствуйте, коллега Майпризм! Продолжаю рассказывать о решении проблемы, связанной с вылетами в поместьях, манекенами и дверьми. Роясь в мусорном ящике Инета (в мусорном, ибо форумы - засраны срачами), наткнулся на коммент по данному скрипту, на который ранее - не обращал внимания. Он оказался очень любопытен. Во-первых, не мне одному данный скрипт причинял вылеты. А, во-вторых, автор коммента, возможно, эмпирически нащщупал причину вылетов.
Цитирую коммент дословно. "Roiloor 25.11.2015 18:03 Очень не рекомендую этот скрипт, потому-что лично я очень пожелел, т.к. у меня данный скрипт вызывал стабильный вылет игры при входе в дом и даже город после покупки первого дома в Маркарте и Рифте и, видимо любого другого ванильного дома с манекенами (на НЕ ванильных проблемы не было), в конфигурации: лиц. Скайрим, последней версии, последний оф. апдейт, Неоф. патч, позапрошлая версия, вроде. Предыдущие версии SKSE и SkyUI. Довольно долго мучился ища причину, хорошо Интернет помог, ато никогда на него ни подумал бы. После удаления скрипта вылеты прекратились сразу-же, больше его не ставил, с новыми версиями примочек не тестил. Не знаю хотя, для кого я это пишу- стараюсь, может это только у меня так было? Ну может кому-то пригодится, если такие-же проблемы будут. Или, может Alex пофиксит что-то, хотя теперь уж навряд-ли." И, далее, "Roiloor 02.12.2015 16:32 Вообщем так... Потестил я тут на днях с дефолтным чистым конфигом и со своим, на: Skyrim ver. 1.9.32 лиц., последний офф. апдейт, SKSE 1.7.03, Не-офф. патч 2.1.3a. Вылетает он, видимо, только при первом входе в дом, после покупки ванильного дома с манекенами. Возможно это связано с ванильными скриптами, которые выполняются при первом входе в ванильные дома. Так-что, если у кого тоже вылетает так, сначала прикупите ванильный дом/дома, которые хотели, войдите в них, потыркайте там манекен, можете дать ему что-нибудь, сохранитесь, а потом уже ставьте скрипт. А если будете потом еще докупать ванильные дома, то удалите временно скрипт, перед покупкой. Можете, на всякий случай, забрать свои вещички со всех манекенов перед этим, если, вдруг, что пропадет, хотя, вроде, не должно, проверьте сразу. Кстати, этот скрипт не позволяет менять пол манекена. ( Просто потому, что в игре нет женской модели манекена. Спасибо Беседке.. Блин, хочу манекены из белого мрамора, как античные статуи чтоб такие были, где есть такие а, подскажите кто-нить, ато уж больно в Скайриме манекены эти деревянные страшные, особенно рожи их."
Что из этого для меня следует? 1) Да, у меня этот скрипт уже стоял, когда я начал строить новые дома в поместьях. Сейчас они так обставлены и наполнены вручную, что крайне лениво начинать всё сначала. 2) И, да, проблема с ванильными манекенами в поместьях - реальна. Я сейчас перепробовал с десяток сторонних модов на манекены. Текстуры и меши они прописывают, но... деревянные тупые рожи ванильных манекенов, как и их мужской пол - как были, так и остаются. Со сторонними модами - всё норм, там всё меняется.
Есть гипотеза. Что дверь - была только активатором. (Каким образом? Как только заканчивалась постройка вестибюля, он же малый дом, а заканчивалась она именно с установкой двери - сразу после этого активировались скрипты на ванильные манекены, как и всякое другое наполнение поместья через верстаки.) И что проблема была не в двери, как таковой, а в ванильных манекенах поместья. (Или, возможно, дверь обеспечивала вылеты независимо от проблемы с манекенами, сама по себе, как вторая причина, пока не знаю.) Задача самому себе мною же изменена: найти, где именно ванильный скрипт на постройку поместий - жёстко прописывает ванильные манекены, и изменить его. Самое простое и грубое решение - удалить нафиг вообще установку всяких манекенов в поместья, из этого ванильного скрипта. Тружусь...
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №23
| Тема: Вопросы по скриптам Papyrus
написано: 1 августа 2020, 10:45
| Отредактировано: yakor77 - 1 августа 2020, 10:46
Здравствуйте, Непевка! Вы пишете, цитирую: [quote=nepewka;1336721]День добрый, есть кто живой ? Нужна помощь по адаптации мода https://www.nexusmods.com/skyrim/mods/60750 а конкретно скрипта в нём готов кто помочь ? не за бесплатно[/quote] конец цитаты. Посмотрел я по Вашей ссылке этот мод на Нексусе. Мультимагический разрушительный мод, с использованием трёх вспомогательных шаров, для стрельбы заклинаниями. Так в чём конкретно у Вас с ним проблема? Чего Вы хотите от скрипта? Поподробнее, плиз.
Майпризм, с благополучным возвращением с гор! А я тут трудился над манекенами. Проверил очередное "самое простое и грубое решение". Слил, в Тес5Едит, все три поместья, точнее, их моды- модификаторы (стены, двор, подвалы, охрана, манекены, и пр.) - в единый файл. Все ID при этом поменялись (естественно, кроме ванильных). Скайрим стал воспринимать поместья, как единый сторонний мод, типа подвала. Ну а в стороннем моде - модификация манекенов всегда проходила успешно. Ну, и сейчас прошла. Ванильных деревянных рож у манекенов - больше нет, стоят нормальные голые мужики. Не вылетает. Всё хорошо. (Но пришлось после этого поработать ручками, перенастроить внутреннее убранство, позаполнять сундуки барахлом, поодевать манекены и слуг, и пр. рутиннная работа.)
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №25
| Тема: Вопросы по скриптам Papyrus
написано: 4 октября 2020, 10:22
| Отредактировано: Multigone - 4 октября 2020, 11:11
Виктор Корвин, для конвертации из pex в psc, и обратно - существуют утилиты. "Качать исходники" нет необходимости, их можно получить и самому. Лично я, давно и успешно, использую вот этот пакет. Вот его дословный текст рекламки: "Уникальная программа, которая очень поможет модермейкерам, которые работают со скриптами. Большинство авторов пытаются скрыть написанный скрипт и просто удаляют его оставляя только компилированный файл в расширении .pex, но эта программа поможет нам вытащить из него скрипт! Как это делается? Да просто, для начала распакуем всё из архива в папку, я назвал её: Декомпиляция, далее устанавливаем vcredist файл, берём любой .pex файл и нажимаем открыть с помощью, находим нашу папку Декомпиляция и файлик "Champollion", открываем с помощью него и он выдаёт нам текстовый файл со скриптом. Аллилуя! Спасибо Фантому! Автор: li1nx. Ссылка.
Дум2004, тогда Вам нужно писать свой собственный скрипт. В котором как раз и прописать условия, что на что менять, когда и где. Одно только помещение в левел лист, само собой, автоматически - смены одежды Вам не обеспечит. Левел лист, это как шкаф или сундук, Вы в него что-то поместили - оно там и хранится вечно. Чтобы сменить одежду - надо открыть шкаф, снять старую одежду, повесить в шкаф, достать оттуда новую одежду, надеть/одеть её, закрыть шкаф.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №27
| Тема: Вопросы по скриптам Papyrus
написано: 6 декабря 2020, 21:23
| Отредактировано: yakor77 - 6 декабря 2020, 21:29
Фродо01, идея красивая, свежая, но... опасная. Если в Скайриме начнется эпидемия, и все жители станут вампирами, будет очень плохо. Вводя яд, сразу надо готовить и противоядие. Подумайте, какой должна быть магическая вакцина, антивампирская прививка, чтобы эпидемию остановить и погасить. И соотв. квест от ярлов к Довакину. Да, и переболевшим и выздоровшим хорошо бы добавить какой-нибудь полезный вампирский перк. Остаточный и слабенький. Например, ночное зрение на 1 чвс. Повышенную сопротивляемость к ядам, болезням, холоду... ну, что-нибудь этакое.
С уважением. Маг Иридий.
Изменение репутации для пользователя yakor77
yakor77Offline
Сообщение №28
| Тема: Вопросы по скриптам Papyrus
написано: 12 января 2021, 09:53
| Отредактировано: Multigone - 12 января 2021, 16:17
количество дней с начала игры. Как из нее вычислить текущий день недели?
- арифметически. Каждый день недели закономерно повторяется через 7 дней. Значит, надо делить на 7, и смотреть остаток от деления. Математики в таких случаях говорят про "вычет по модулю 7". Погуглите, например, как строятся "вечные календари".