nepewka, первое условие в перке - если цель атаки не является боевой целью игрока. Т.е., если в нее прилетит снаряд фаербола (а не затронет воздействием на площадь), она будет считаться боевой целью (???), урон не предотвратится. Может, из-за этого говорят, что работает так себе.
1) Mod Spell Duration - Affects the duration of spells, potions, ingredients, enchantments, etcetera (anything with an "Effect List" in the Creation Kit). Mod Spell Magnitude - Affects the magnitude of spells and spell-like effects (see above). Ссылка.
2) Вообще-то, они должны игнорировать урон только тогда, когда являются союзниками игроку. Ты же не хочешь получить неуязвимых магией врагов-атронахов, если специально их атакуешь вне боя?
3) Игрок и так не наносит себе урона от собственных заклинаний с воздействием на площадь. Проверь, кинь себе под ноги фаербол. Исключение: когда снаряд порождает взрыв, который порождает другой взрыв. В этом случае последний взрыв будет действовать на всех подряд (ему указывается Enchantment с поражающим маг. эффектом FF - Contact).
2) Если ты атакуешь своего уникального атронаха оружием вне боя, он станет врагом, очевидно же. Почему нет?
3) Никак, наоборот, надо все ванильные заклинания переделать, чтобы они не разбирали свой-чужой. Мне, как и Dsion'у, не нравится подобный избирательный подход к их работе. Ну а если все-таки это необходимо, то тут несколько вариантов проверок (в конечном маг. эффекте референс источника заклинания мы определить не можем): - имеет ли цель экипированное заклинание с нужным кейвордом (минус - может выполняться не только для заклинателя) - является ли цель конкретным актером (минус - заклинание можно выдавать только этому актеру).
3) Любой из предложенных. Или делай по кейвордам, это будет наилучшим решением в твоем случае. Кстати, я речь вел о другом - снаряд порождает взрыв, который порождает другой взрыв через Placed Object (выпадающий список в Explosion). Второй взрыв атакует зачарованием FF - Contact.
Entry Point -> Mod Spell Magnitude -> Set Value = 0.0
Perk Owner: (S) (GetFactionRelation) (Player) (>) (1.0) (AND)
Target:
(S) (GetIsID) (Player) (==) (1.0) (AND) (S) (HasKeyword) (MyZeroDamageKYWD) (==) (1.0) (AND) ; Дать кейворд игроку через алиас; дать нужным НПС. Защита между НПС тоже.
Entry Point -> Mod Incoming Spell Magnitude -> Set Value = 0.0
Spell: (S) (HasKeyword) (MyDangerousSpellKYWD) (==) (1.0) (AND) ; Указать кейворд в MGEF опасного заклинания.
Entry Point -> Mod Spell Magnitude -> Set Value = 0.0
Target:
(S) (GetFactionRelation) (Player) (>) (1.0) (AND) (S) (HasKeyword) (MyZeroDamageKYWD) (==) (1.0) (AND)
Entry Point -> Mod Incoming Spell Magnitude -> Set Value = 0.0
Spell: (S) (HasKeyword) (MyDangerousSpellKYWD) (==) (1.0) (AND)
event oneffectstart (actor Target, actor Caster) ; событие не сработает, если снаряд не попадет в актера (или в некоторые др. объекты, если задан архетип Scripts) Target.PlaceAtMe(exp01, 1) endevent
nepewka, ну, тебе виднее. Я к тому, что если эффект не наложится на цель (неважно, от попадания снаряда или от действия на площадь), событие не сработает, взрыва не будет. Плюс, если в зоне действия находятся 10 целей, то будет создано 10 взрывов, каждый из которых затронет остальных, и суммарный полученный урон одной такой целью будет равен произведению кол-ва целей на урон взрыва.
nepewka, вот только в Incoming не передается инфа о источнике заклинания, поэтому он не такой полезный. Т.е. его, в основном, можно использовать для регулирования урона от подходящих групп заклинаний, или в зависимости от состояния носителя перка. В Mod Spell Magnitude также учитывается пригодность цели и ее состояние. Так что разница существенная.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №585
| Тема: Вопросы по скриптам Papyrus
написано: 20 июня 2015, 19:25
| Отредактировано: Multigone - 20 июня 2015, 19:28
nepewka, наблюдение - после того, как прицепил к MGEF скрипт и настоил Property, не стоит ничего менять в связанном с ним SPEL (или Ability, ENCH и т.д.). Поменял SPEL - заново указал скрипт и Property. У меня из-за этого бывали проблемы, хоть это и звучит, как шаманство.
FUNCTION F(Form BaseItem, int Count, ObjectReference Source, ObjectReference Destination, ObjectReference ItemReference, Int iMod) iChain += iMod IF (iChain > 0 && iMod > 0) || (iChain < 0 && iMod < 0) Source.RemoveItem(BaseItem, Count, true, Destination) ENDIF ENDFUNCTION
UPD: Убрал один (теперь уже лишний) параметр функции. Все равно можно сломать и эту версию, если очень быстро щелкать сперва по одному списку (напр., контейнера), потом оч. быстро переключиться на др. список (игрока) и пощелкать по нему. Тогда вещи будут безвозвратно перемещаться из последнего в первый в течение нескольких миллисекунд. Затем можно спокойно брать из первого контейнера столько наименований предметов, сколько быть в него перемещено. Так работает потому, что:
1) События не успевают обрабатываться скриптом. 2) У кое-кого не слишком прямые руки.
SoraSt, размещаешь объект в нужном месте. В Ref этого объекта возводишь флаг Initially Disabled. Включаешь предмет командой из квеста (или из любого др. скрипта):
MyREFR.Enable() ; Для ObjectReference Property MyREFR Auto указываешь конкретный объект в окне рендера.
nepewka, я знаю. Как это вышло:
1) Открыл мод в СК. 2) Посмотрел измененные формы. 3) Увидел, что все Armor колец и амулетов не имеют ни одного выделенного слота в окне Biped Object. ... X) Profit!
Arin, нужно создать благоприятные условия: настроить Class, CombatStyle, выдать нужные заклинания (желательно разного уровня мастерства, чтобы НПС мог пользоваться подходящими под его уровень). Дать лук.
Полагаю, поскольку обе атаки дальнего боя, НПС все равно будет пользоваться только той, которая наносит наибольший урон. Чтобы как-то разнообразить бой, можно написать скрипт специально для этого актера, периодически (можно - в зависимости от разл. условий) удаляющий или добавляющий заклинания (или меняющий AV Magicka).
Насчет использований пакетов UseMagic - не в курсе.
1) Сделано для баланса. 2) Можно не привязывать, а использовать SKSE: MyArmor.SetSlotMask(0x00000000) ; не уверен, что слот станет none. 3) Проще дать Ability с тем же эффектом.
nepewka, я поразмыслил, вроде любой НПС имеет возможность экипировать предмет, независимо от его указанных слотов в Biped Object (Armor/AA) и рас в Additional Races. Проведи эксперимент, дай кольцо с 100% сопр. магии и посмотри, сможешь ли убить магией. Если сможешь - предмет не экипирован.
Dsion, лучше расскажи, как экипировать яды без сообщений.
nepewka, 146%. Кстати, мне не известно, как поведет себя актер (не игрок), если ему сперва дать перк, потом на нем вызвать Reset(). Может, перк начнет работать.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №598
| Тема: Вопросы по скриптам Papyrus
написано: 22 июня 2015, 12:32
| Отредактировано: Multigone - 22 июня 2015, 12:37