Professor_X, способ есть, но он не лишен недостатков.
Итак:
1) Создаешь 2 заклинания.
а) Заклинание первое. Основное, используемое заклинателем для вызова атронаха.
б) Заклинание второе. Применяет вызов атронаха к заклинателю.
2) Создаешь скрипт и вешаешь к первому заклинанию. В Property указываешь второе заклинание.
Scriptname _TESTAtro extends ActiveMagicEffect
Spell Property MySpell Auto
EVENT OnEffectStart(Actor akTarget, Actor akCaster) IF akCaster.HasSpell(MySpell) akCaster.RemoveSpell(MySpell) ENDIF Utility.Wait(0.01) akCaster.AddSpell(MySpell, false) ENDEVENT
Недостатки:
1) НПС не будут пользоваться таким вызовом атронаха, поскольку основное заклинание не использует интересные с точки зрения AI архетипы / атрибуты.
2) Больше одного атронаха призвать не выйдет (если модифицируется Commanded Actor Limit). Загвоздка заключается в том, что сочетание SummonCreature + ConstantEffect в маг. эффекте не работает с типом заклинания Spell, вместо него пришлось использовать тип заклинания Ability. А Ability не будет выдаваться актеру второй раз, если такое у него уже есть.
Возможно, есть др. способы реализации этой проблемы.
1) Скриптом добавить актеру нужные фракции и изменить отношение к игроку. Чтобы в диалоге появились стандартные фразы компаньона, актер должен иметь допустимый тип голоса. Подробнее о скриптах.
2) Добавление производится перетаскиванием нужных заклинаний или перков в Actors -> Actor -> Нужный НПС -> SpellList -> Spells / Perks. Если НПС уже встретился в игре, добавление / изменение с помощью СК ни к чему не приведет, поскольку состояние НПС запишется в сохранение. Значит, нужно начать новую игру или после подключения мода откатиться на сохранение, когда этот НПС еще не встретился. Скриптом добавлять заклинания можно всем, перки - только игроку.
Я пытался сделать так, чтобы на первой стадии вампиризма наносился урон 15 единиц здоровью, магии и запасу сил, на второй стадии - 30, на третьей стадии - 45, на четвёртой - 60
Все это есть в ванильной игре.
Peak Value Modifier - среди всех наложенных на актера эффектов, имеющих такой же архетип, атрибут AV (Assoc. Item 1) и ключ. слово (если оно указано в Assoc. Item 2), выбирается один с наибольшей магнитудой, который и будет применяться; остальные будут сняты. Инфа общего характера.
В твоем случае, по идее, неважно, указан Peak Value Modifier или Value Modifier, результат наложения заклинания будет одинаков, и описанного бага быть не должно (я так думаю).
Scriptname _MyScriptCont extends ObjectReference ; Вешается на контейнер.
Import Game
ObjectReference Property MyREFRCONT Auto ; Копия пустого временного контейнера. FormList Property MyFLST Auto ; Лист с предметами, допустимыми для обмена с осн. контейнером.
EVENT OnActivate(ObjectReference xR) ObjectReference xP = GetPlayer() IF xR == xP xP.RemoveAllItems(MyREFRCONT, true) Int iL = MyFLST.GetSize() Int iC WHILE iC < iL Form xF = MyFLST.GetAt(iC) MyREFRCONT.RemoveItem(xF, MyREFRCONT.GetItemCount(xF), true, xP) iC += 1 ENDWHILE ENDIF ENDEVENT
Docer21, если под "принудительно" понимается возможность крафтить предметы, игнорируя требования рецептов к наличию перков, то способ очень простой:
Ищем в СК перк AdvancedArmors. ПКМ на перке -> Use Info. Видим список рецептов (с типом COBJ). Открываем каждый рецепт (клацая на нем ЛКМх2) и редактируем его. Что именно редактировать: в окне Match Conditions находим условие (S) (HasPerk) (AdvancedArmors) (==) (1.0) (AND) и удаляем его (ПКМ -> Delete). Сохраняем (ОК). Выполнив операцию с каждым рецептом из списка, сохраняем мод. Проверяем в игре. Возможно, остаемся довольны результатом.
mshancevoj, у меня была такая проблема: некоторые плагины не загружались, поскольку мой СК был более старой версии, чем тот, который использовался для их создания.
Чуспи, это называется "угрозы" (Hazard). Располагаются в SpecialEffect -> Hazard.
Их можно создавать через маг. эффект 3 способами:
1) Spawn Hazard - FF - Self/Aimed/TargetActor - (в Assoc. Item 1 указать угрозу). В этом случае Duration в заклинании преобладает над Lifetime в угрозе (??? возможно, используется наименьшая из продолжительностей). Угроза существует, пока на актере наложен связанный с ней маг. эффект. Одновременно может быть расположена только одна угроза для цели этого маг. эффекта. Источник заклинания (Caster) получает иммунитет к отриц. эффектам угрозы. Так выполнено заклинание CircleOfProtection (к примеру).
2) (Любой архетип) - (Concentration/FF) - Aimed. Заполняются Projectile и Impact Data Set. При воздействии заклинанием на актера к нему будет применено действие этого маг. эффекта (т.е. согласно его архетипу и атрибутам). При воздействии на препятствие будет создана угроза, указанная в Impact Data Set -> Impact Data -> (Поле Effect) -> Hazard. При попадании актера в зону угрозы к нему будет применено заклинание, указанное в Hazard -> Spell. Источник заклинания получает иммунитет к отриц. эффектам угрозы. Макс. кол-во одновременно располагаемых угроз одинакового типа ограничего (поле Limit в угрозе). Так выполнено заклинание WallOfFlames (к примеру).
3) Вариант 2) с изменениями: вместо Impact Data Set (с угрозой) в поле Projectile указывается снаряд, имеющий взрыв (Projectile -> (Флаг Explosion) -> (Указать взрыв, выбрать Trigger On Impact). Сам взрыв должен быть пустым (поля Damage, Force, IS Radius, Offset выставить на 0; Radius указать мин., к примеру, 16; в поле Placed Object указать нужную угрозу; остальные поля оставить пустыми, Art File -> Effects\FXEmptyObject.nif; флаги не указывать). В этом случае при попадании в актера или в препяствие снаряд породит взрыв, который разместит указанную угрозу, действующую на любых актеров, в том числе на источник заклинания.
Также можно воспользоваться скриптами, но этот вариант подойдет не всем.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №534
| Тема: Вопросы по скриптам Papyrus
написано: 6 июня 2015, 18:55
| Отредактировано: Multigone - 6 июня 2015, 19:53
EVENT OnEffectStart(Actor akTarget, Actor akCaster) If xR.IsDisabled() xR.MoveTo(Game.GetPlayer()) xR.Enable() Else xR.Disable() EndIf Debug.Notification("Ха!") ENDEVENT
2) Указал Property. 3) Настроил маркер, кроме Marker Data ничего не трогал.
Изначально маркер спрятан. После использования заклинания он появляется у ног игрока. Быстрое перемещение сделать можно. Повторное использование прячет его. В общем, работает так, как требовалось. Значит, ты что-то упустил.
UPD: Работает только на мировой карте (в интерьерах нет). Я вообще не понял, как отмечать что-то на локальной.
1) При загрузке СК сообщения об ошибках должны появляться, если их не отключить (bBlockMessageBoxes=1) в SkyrimEditor.ini. 2) Окно рендера будет пусто до тех пор, пока не загрузишь конкретную локацию из окна Сell View. 3) Модели и текстуры из модов (??? и DLC, не указанных в SResourceArchiveList) не будут грузиться в СК, если их нет в соотв. директориях в папке Data (т.е. если .bsa мода не разархивирован).