Всё можно, если осторожно Зря ты с самого начала не рассказал, чего именно пытаешься добиться. Высока вероятность, что для этого перки вообще не нужны.
Самые обычные стрелы, пущенные из самого обычного лука рукой обычного NPC должны накладывать заклинание? И чтоб не менять всех ванильных NPC? Не, ничего не приходит в голову. Разве что Cloak заклинание, которое будет отслеживать попадания по всем целям в радиусе полёта стрелы. Но это, наверное, не очень правильно с точки зрения производительности...
Жмешь кнопку Properties на своём скрипте. Создаешь новую Property: Тип: Quest Имя: Любое. Удобно, если оно совпадает с именем второго квеста. Пусть будет HRENN02.
Потом нужно эту Property заполнить. Если имя совпадает с именем реального квеста, можно нажать Auto-Fill. Если не совпадает, вручную указать квест.
А потом в любом месте скрипта делай с этим квестом всё, что тебе хочется: HRENN02.Start() HRENN02.SetStage(100) HRENN02.Stop()
Через эти Property скрипты получают доступ к другим объектам из CK или из мира.
Цитата F_Constantine
Вот беда-то: никто тут скриптов не пишет, никто ничё не знает facepalm .
Я не собирался никого оскорблять. Но раз уже ты сам начал... Мог бы догадаться открыть какую-то ванильную цепочку квестов и посмотреть, как там запускается следующий квест.
VALKNUT, я уже делал цепи и вешал на них NPC без каких-либо проблем. Но недавно у какого-то чела была похожая проблема: драугры не хотели в гробы укладываться, а стояли рядом. Ему посоветовали поправить навмеши. Лично я даже не знаю, был ли смысл в этом совете и помогло ли ему... Просто вспомнилось.
DarkVetal, не уверен, что сама модель может излучать свет. Даже окна в Скайриме освещают комнату только потому, что к ним прицеплен реальный источник света из CK. В крайнем случае, то, что ты хочешь, можно реализовать с помощью магического эффекта на игроке.
Можешь открыть и посмотреть эффект LightFFSelf. В нем указан тип света (MagicLightLightSpell01 по-умолчанию) и Hit Effect Art (LightSpellActorFX по-умолчанию). Hit Effect Art нужен обязательно. Он определяет, откуда именно будет излучаться свет. Если изменить Hit Effect Art на, к примеру, InvisFXBody01, то никакого светящегося шарика над игроком не будет, а свет будет исходить от тела самого игрока.
В CK факел находится в группе источников света... Он не потому светится, что модель такая... Если бы он не требовал свободной руки... Сейчас еще посмотрю, что там.
Добавлено (05 Сентября 2014, 14:34) --------------------------------------------- Хотя это можно легко проверить. Сделать оружие с моделькой от факела. Но очень вряд ли, что он продолжит освещать окружение.
Я сначала подумал, что можно сделать и автонадевание источника света, когда достаешь меч. Но, похоже, эти переносимые источники света (типа факела) всегда занимают левую руку.
Добавлено (05 Сентября 2014, 14:48) --------------------------------------------- Угу... Кроме магического эффекта, пока ничего не приходит в голову.
Сами источники света в CK в групе Light. А эффект можно посмотреть LightFFSelf для примера. Но его сильно переделать придется, конечно. Если вдруг придет в голову что-то полегче, обязательно напишу.
VALKNUT, для каста заклинания я бы сначала попробовал не функцию скрипта, а пакет с процедурой UseMagic. Анимация должна работать. Потом можно попробовать пакет с прописанной Idle в "Use Specific Idles". Если не сработает, тогда остается уже функция PlayIdle(Idle akIdle).
Добавлено (07 Сентября 2014, 13:38) --------------------------------------------- Еще по поводу книги. Если она лежит где-то в мире, то достаточно просто вызвать на ней Activate(Game.GetPlayer()). Прочитается даже если игрок в другой локации. А если она должна лежать в инвентаре... Ну тоже можно вызвать на ней Activate, но для этого она, скорее всего, должна быть в алиасе квеста. Чтоб имела уникальный ID.
Тебе точно не подходит пакет с процедурой UseMagic? Я только что перепроверил: NPC послушно колдует заклинание, размахивает руками и всё как надо.
Допустим, я знаю, как запустить анимацию через скрипт... Но толку-то? Руки у NPC не светятся, характерных для серьезного колдунства звуков нету. Зачем оно тебе?
Можно вообще убрать ей аутфит. А потом наряжать во что угодно под настроение прямо в игре. Только с флагом PreventUnequip. Захотел - надел броньку. Захотел - надел нижнее белье.
Можно, конечно, сделать и так, как ты хочешь, объединив моды. Но зачем? Разве не лучше, когда можешь переодеть спутницу во что-то другое, не открывая CK?
Добавлено (11 Сентября 2014, 16:58) --------------------------------------------- Я сделал мод, который сам меняет одежду NPC, в зависимости от локации или от того, спят ли они. Но твоя задача намного проще.
Если у NPC аутфита вообще нету и надеть на него вещи с этим флагом (скриптом или через консоль), то он их не снимет и не будет голым... Можно сделать очень маленький и очень простой мод, чтоб NPC сразу надевал все вещи, что ему даешь, с этим флагом.
Надо сначала его выделить и набрать консольную команду UnequipAll - снять всё. Потом команду ShowInventory, чтоб увидеть список вещей и их ID. А потом надеть их командами типа: EquipItem 05000d62 1 1 только подставляя свои ID. Первая единичка как раз и ставит флаг "не снимать".
Но с модиком, конечно, намного легче. Можно просто давать NPC вещи и они будут сразу надеваться навсегда.
Вот еще заметка: именно через консоль я не пробовал надевать вещи с флажком "не снимать". Должно работать, но не проверял. А если скриптом, что точно работает и уже 100 раз проверено.
Для коллизии у статиков используется bhkCompressedMeshShape, в котором хранится упрощенный меш коллизии. Это Arin уже научилась делать, вроде. Но у посуды и других clutter предметов никакого bhkCompressedMeshShape нету. Для них используются хавок-примитивы (типа bhkBoxShape или bhkSphereShape) и матрица инерции. Потому процедура создания коллизии, возможно, будет отличаться.
Основные моменты: 1. Ванильные динамические объекты почти никогда не используют bhkCompressedMeshShape. Чаще используется bhkConvexVerticesShape. 2. bhkConvexVerticesShape может автоматически генерироваться в NifSkope.
Там даже пошагово написано, что делать, но я не вникал.
VALKNUT, если на NPC вешать скрипт, то там есть OnSit и OnGetUp для фурнитуры. А если на саму фурнитуру, то черт знает. Есть функция IsFurnitureInUse - можно проверять каждую секунду...
Добавлено (30 Сентября 2014, 23:02) --------------------------------------------- Оно-то работает, но не вижу особого смысла... Можно же просто сделать алиас игрока с ивентом OnItemRemoved. Но эти StoryManager ивенты чуть больше информации получают об ивенте.
В SM Event Node список ивентов, а в каждом ивенте список квестов, которые он может запускать... Если там будет твой квест и в квесте тоже прописан запуск по этому ивенту, то он запустится и выскочит OnStory...
Всё это только для того, чтоб защититься от читера? Чтоб предмет нельзя было добавить через консоль? Не думаю, что можно сделать надежную защиту. Всегда найдется какая-то серия консольных команд, которая таки даст игроку этот предмет.
Но если хочешь хоть какую-то примитивную защитку от AddItem... Можно прицепить скрипт на сам предмет. При появление предмет будет проверять, выполнены ли все условия квеста. А если не выполнены, будет самоудаляться... И убивать игрока (на всякий случай).