Мне нужно заставить НПС выполнить некую анимация(в моем случае каст с двух рук). У меня есть диалог, во время которого НПС совершает колдунство(над собой) и совершение каста у меня проходит без проблем...
myCast.Cast(akSpeaker)
Но как заставить НПС эпично махать руками???
Ииии второй вопрос, с вашего позволения.. Как принудить ГГ прочитать некую книгу/записку/рецепт? Ну, в смысле, что при наступлении некоего момента, книга раскрывается так, как если бы игрок раскрыл ее подбирая или из инвентаря...
====== Заранее признателен!
Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ <a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Как принудить ГГ прочитать некую книгу/записку/рецепт? Ну, в смысле, что при наступлении некоего момента, книга раскрывается так, как если бы игрок раскрыл ее подбирая или из инвентаря...
Вспомни первый квест коллегии бардов. Глава коллегии достает книгу (читаем - черновик барда), листает её и говорит, что стихи - отстой. Тебе не подойдет эта анимация? Если что - её можно найти в интерьере коллегии или в квестовом пакете.
Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых. Джордж Бернард Шоу
Изменение репутации для пользователя VALKNUT
VALKNUTOffline
Сообщение №8794
написано: 7 сентября 2014, 04:59
| Отредактировано: VALKNUT - 7 сентября 2014, 05:00
Вспомни первый квест коллегии бардов. Глава коллегии достает книгу (читаем - черновик барда), листает её и говорит, что стихи - отстой. Тебе не подойдет эта анимация? Если что - её можно найти в интерьере коллегии или в квестовом пакете.
Неее.. мне нужно не это... мне нужно чтоб книга открылась принудительно. То есть: наступил какой-то момент... и книга открылась для чтения, как если бы ее открыл игрок тыцкнув по ней.
Но все равно благодарю!
Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ <a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №8795
написано: 7 сентября 2014, 09:38
| Отредактировано: Dsion - 7 сентября 2014, 09:20
VALKNUT, для каста заклинания я бы сначала попробовал не функцию скрипта, а пакет с процедурой UseMagic. Анимация должна работать. Потом можно попробовать пакет с прописанной Idle в "Use Specific Idles". Если не сработает, тогда остается уже функция PlayIdle(Idle akIdle).
Добавлено (07 Сентября 2014, 13:38) --------------------------------------------- Еще по поводу книги. Если она лежит где-то в мире, то достаточно просто вызвать на ней Activate(Game.GetPlayer()). Прочитается даже если игрок в другой локации. А если она должна лежать в инвентаре... Ну тоже можно вызвать на ней Activate, но для этого она, скорее всего, должна быть в алиасе квеста. Чтоб имела уникальный ID.
Изменение репутации для пользователя mxac
mxacOffline
Сообщение №8796
написано: 7 сентября 2014, 12:44
| Отредактировано: mxac - 7 сентября 2014, 13:13
baglebld, скриптом. Его пример для книги: Scriptname MyScript extends ObjectReference ; Для книги. GlobalVariable Property MyGLOB Auto ; Создай свою глобальную типа Int - Short, значение 0. Для каждого рецепта нужна отдельная глобальная. Auto STATE Ready EVENT OnRead() MyGLOB.SetValueInt(1) GoToState("Done") ENDEVENT ENDSTATE STATE Done ENDSTATE Далее, в Constructible, в своем рецепте создания брони, в поле Conditions указываем: (S) (GetGlobalValue) (MyGLOB) (==) (1) (AND) После этого условия ставятся остальные, определяющие требования к навыкам / перкам. Я привел только один вариант решения вопроса, не исключено, что существуют другие.
Можно ещё сделать книгу обучающей перку(скриптом), а в условиях рецепта поставить наличие перка. Но рациональнее использовать предыдущий метод, только если потом перк не использовать ещё както(Я например в своём моде на серебряные стрелы делал книгу которая учила перку который и отвечал за доп урон по нежити от стрел, а в рецептах на теже стрелы ставил условие наличия перка)
Если она лежит где-то в мире, то достаточно просто вызвать на ней Activate(Game.GetPlayer()). Прочитается даже если игрок в другой локации.
Как понять "на ней"? Я хочу сунуть под нос ГГ раскрытую записку, при наступлении стадии квеста... myBook.Activate(Game.GetPlayer()) папирус ругается... /Activate is not a function or does not exist/
Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ <a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Но у меня негде ObjectReference подхватить... В одном месте, где я могу инициировать чтение книги - "extends activemagiceffect", в другом "Extends Quest Hidden"(код в стадиях квеста)
==АП Во туплю! Понял! Благодарю!!!
==АП АП С книгой все получилось... С анимацией, ну хоть убей... не выходит... И пакеты назначал(разные) и idle прикручивал... буду рыть дальше..
Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ <a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Найдёшь способ, пожалуйста поделись. А то я всё пытался сделать так чтобы ГГ садился в позу лотоса, но максимум чего добился это появление ГГ в этой позе после телепортации.
Получилось открыть на чтение из инвентаря без выкидывания в мир?
Закинул в мир... после этого скриптом добавляю в инвентарь..
Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ <a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Kepper, в моде Frostfall можно включить опцию, что когда ГГ оказывается рядом с костром, на нем проигрывается анимация "погреть руки". Скрипты там открытые (можно глянуть исходники), во всяком случае, в той версии, которая у меня была. Правда, их количество там большое, придется искать долго, наверное.
Тебе точно не подходит пакет с процедурой UseMagic? Я только что перепроверил: NPC послушно колдует заклинание, размахивает руками и всё как надо.
Допустим, я знаю, как запустить анимацию через скрипт... Но толку-то? Руки у NPC не светятся, характерных для серьезного колдунства звуков нету. Зачем оно тебе?
Допустим, я знаю, как запустить анимацию через скрипт... Но толку-то? Руки у NPC не светятся, характерных для серьезного колдунства звуков нету. Зачем оно тебе?
В том-то и дело, что НПС светится, закл кастуется... но НПС при этом остается в той-же позе... То есть происходит все, что нужно, кроме махания руками...
Я пробовал и UseMagic, указывал в пакете и спелл и касующего и таргет(кастующий).. но никаких движений.. Я делал пустой пакет, используя только вкладку Idle, добавив там анимацию.. и тоже голяк...
возможно(как мне кажется) касту через пакет мешает каст через скрипт.. я проверю... через пакет в диалоге, сделать проще всего(меньше граблей) но блин.. не работает тащемта...
Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ <a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Создаешь текстовый файл, меняешь его расширение на .psc. Открываешь его Notepad++. Вставляешь текст скрипта. Важно: файл .psc должен называться так же, как в тексте скрипта. Пример: если в тексте написано Scriptname MyScript extends ObjectReference, значит, файл .psc должен называться строго MyScript.psc Закидываешь свой MyScript.psc в папку Data -> Scripts -> Source. Там хранятся исходники скриптов. В СК открываешь окно Gameplay -> Compile Papyrus Scripts... (оно сверху). Выбираешь MyScript.psc (ставишь флаг). Нажимаешь кнопку Compile. Ждешь 1 секунду, пока скомпилируется. Готовый скрипт находится в папке Data -> Scripts, имеет расширение .pex.
Создаешь книгу Items -> Book. Проще всего скатать ее с уже имеющейся. Как скатать: открываешь подходящую книгу, меняешь ее название в поле ID на свое собственное (MyBook). Нажимешь ОК -> ОК. Создаешь глобальную Miscellanious -> Global с типом Short, значение 0. Как создать: в окне объектов нажимаешь ПКМ - New. Называешь ее MyGLOB, или как угодно. Открываешь MyBook, в поле Scripts нажимаешь Add. Выбираешь MyScript -> OK. Открываешь свойства скрипта (2 раза ЛКМ по скрипту, или ПКМ - Edit Properties). Нажимаешь кнопку Auto-Fill All. Переменная MyGLOB заполнится автоматически, поскольку название (и тип) переменной скрипта совпадает с созданной тобой глобальной MyGLOB. В случаях, когда названия не совпадают, переменные заполняются вручную с помощью кнопки Edit Value. Нажимаешь ОК -> ОК. Присоединение скрипта к книге завершено.
Создаешь свой рецепт Items -> Constructible Object. Называешь его MyCOBJ, или как угодно. Подробнее о рецептах. В поле Match Conditions создаешь новое условие (ПКМ - New): Run On: Subject Condition Function: GetGlobalValue Нажимаешь большую кнопку INVALID и выбираешь свою глобальную MyGLOB. Comparison: == Value: 1.0000 ОК -> ОК.
Условие читается как: "Если значение указанной глобальной равно единице, то...".
Важно: для каждого рецепта (которые с требованием прочтения книги) нужны будут отдельные: - глобальная. - условие в рецепте с проверкой значения этой глобальной. - книга (скрипт можно использовать один на все книги, но Properties скрипта нужно будет заполнять вручную этой глобальной).
Как будет в игре: Изначально значение глобальной равно нулю. Пока значение глобальной равно нулю, рецепт не будет доступен в меню крафта. При прочтении книги сработает скрипт, который изменит значение глобальной с нуля на единицу. Пока значение глобальной равно единице, рецепт будет доступен для крафта.
Я себе для компиляции скриптов bat файл соорудил. Благодаря нему можно хранить исходники скриптов в произвольной папке.
Делаем текстовый файл. Копируем в него код приведёный ниже. Меняем расширение с txt на bat. И закидываем в папку с вашими .psc файлами.
При запуске в появившемся окне можно увидеть лог компиляции и отчеты об ошибках. Если компиляция прошла успешно, то жмем любой кнопку на клавиатуре и скомпилированные файлы отправятся в папку с игрой. Если провалилась то где были замечены ошибки и просто закрываем окно.
"C:/Steam/SteamApps/common/Skyrim/Papyrus Compiler/PapyrusCompiler.exe" - путь к вашему компилятору -i="C:/Steam/SteamApps/common/Skyrim/Data/scripts/source/" - путь к каталогам содержащим прочие исходники. Если таких каталогов несколько то перечисляем их чере ; -i="C:/Steam/SteamApps/common/Skyrim/Data/scripts/source/";"C:/Steam/ХранилищеВашихМодов/" -o="../" - указывается куда будут попадать скомпилированные файлы(в данном случае в родительскую папку)
Пользоваться Compile Papyrus Scripts... несколько неудобно из-за того что первый раз она очень долго вызывается(считывает общий список), да и для поиска своего скрипта надо делать дополнительные телодвижения.
Компиляция средствами СК в окнах редактирования конкретных обектов(Book, quest и тд) не выводит отчёты об ошибках(может у меня что-то криво настроено, так как само поле под отчёт об ошибках присутсвует, но я не нашел где, что надо подкрутить)
Мой способ позволяет скомпилировать все скрипты мода за один-два клика. При совместном использовании с Skyrim Mod Organizer все компоненты твоего мода находятся в одной папке(то есть при публикации ничего не потеряется). Из минусов - надо следить за скриптами генерирующимися автоматически при составлении квестов
Цитата Multigone
Только я храню временные скрипты на раб. столе, там же ярлык к игровой папке с исходниками.
То есть ты в ручную кидаешь скрипты с рабочего стола в игровую папку исходников, а затем в СК находишь и компилируешь свои скрипты?
Я себе для компиляции скриптов bat файл соорудил.Благодаря нему можно хранить исходники скриптов в произвольной папке.
ИМХО самый удобный вариант. По сути, запускается тот же батник, только из фиксированной директории, к чему плодить папки со скриптами. Пишем/правим скрипт, жмем клавишу, читаем лог, наслаждаемся результатом.
Для этого находим файл shortcuts.xml в директории Notepad и в массиве <UserDefinedCommands> вносим новую команду для компилятора. Горячую клавишу в последствии можно поменять непосредственно в Notepad.
Путь и название bat-файла меняем на свои. Вносить изменения надо в блокноте, не в Notepad, иначе они не сохранятся.
Далее создаём батник, на который будет ссылаться Notepad. Опять же, ссылаться можно на любые директории, у меня всё по классике.
Кстати, скрипты компилируются так же из любой директории, только моим батником они не копируются, а сразу компилируются по пути data/scripts в директорию игры.
Народ, подскажите: как переодеть персонажа из мода в одежку из другого мода?
Запускаю в Creation Kit мод с одежкой и мод со спутницей, последний делаю активным. Открываю все нужные мне одежки, что-то там меняю для видимости, жму везде ОК - чтоб они "отметились" в новом моде (спутницы). Создаю оутфит из нужных вещичек, одеваю девочку в этот оутфит в ее настройках, вижу в Creation Kit девочку в новой одежке, сохраняю. Мод со шмотками в лаунчере стоит выше (раньше) мода со спутницей. Захожу в игру - девочка голышом. "Подождать 30 дней до обновления" не помогает, resurrect в консоли, который всегда помогает при замене оутфита - не помогает.
С помощью "Кольца переодевания" (есть такая штучка, тоже из мода, которая позволяет снять оутфит с любого персонажа) вижу названия прописанных мной шмоток в инвентаре спутницы. Т.е. они все же есть, но не отображаются - не "подхватились" модели/текстуры.
Почему? Что не так сделал или что еще надо сделать?
Можно вообще убрать ей аутфит. А потом наряжать во что угодно под настроение прямо в игре. Только с флагом PreventUnequip. Захотел - надел броньку. Захотел - надел нижнее белье.
Можно, конечно, сделать и так, как ты хочешь, объединив моды. Но зачем? Разве не лучше, когда можешь переодеть спутницу во что-то другое, не открывая CK?
Добавлено (11 Сентября 2014, 16:58) --------------------------------------------- Я сделал мод, который сам меняет одежду NPC, в зависимости от локации или от того, спят ли они. Но твоя задача намного проще.
Изменение репутации для пользователя F_Constantine
F_ConstantineOffline
Сообщение №8819
написано: 11 сентября 2014, 14:36
| Отредактировано: F_Constantine - 11 сентября 2014, 14:37
Ну, так я и так могу переодевать их во что хочу - пока они со мной. Тем же "Кольцом Переодевания" - спасибо MYPRISM-у за "Небесный Замок" и это колечко в нем . Но по возвращении в свою локацию все компаньоны возвращаются либо к дефолтному оутфиту, либо (если вещи из оутфита забрать) остаются голышом, что меня как-то не устраивает .
Или есть какой-то способ оставлять их "пожизни" в том, во что я их одел последний раз? Сорри, ты, видимо считаешь меня несколько умнее, чем я есть - я, например, без понятия, что такое "флаг PreventUnequip". Поясни, пожалуйста, подробнее. Ну, или подскажи, если можешь, что я не так сделал с объединением модов.
Если у NPC аутфита вообще нету и надеть на него вещи с этим флагом (скриптом или через консоль), то он их не снимет и не будет голым... Можно сделать очень маленький и очень простой мод, чтоб NPC сразу надевал все вещи, что ему даешь, с этим флагом.