• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней. • Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней. • При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС. • При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "+" полезного сообщения.
Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.
Красное солнце Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
А когда огненный шторм наносит урон только врагам - это, типа, продуманно и лорно?
*кряхтит* вот в мои времена игроки, орудующие огненными заклинаниями массового поражения, вызывали не каких-то там, а именно огненных атронахов с сопротивлением огню... Вот это было круто... *кряхтит*.. Эх, старость - не радость.
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №1682
написано: 19 июня 2015, 14:28
| Отредактировано: nepewka - 19 июня 2015, 14:42
нашел я книгу, помоему это она, линкануть не могу к сожалению, тупейший движок у вики свитков. Поищите в гугле: Skyrim чёрная книга ветры перемен
Добавлено (19 Июня 2015, 17:28) --------------------------------------------- Сама книга никаких перков/спеллов не вешает. Значит ищем ответ в скриптах. Скрипты:
1. Скрипт самой черной книги. (общий для всех черных книг)
Bool Property DisableLooking=false Auto Conditional { when locking controls, should we disable the camera? default = FALSE }
bool Property bPlayerHasRead = false Auto Conditional Hidden { set to true after player has read it once - when false, ignore "can read" restrictions }
Event OnRead() ; debug.trace(self + "OnRead ") if (DLC2BooksActive.GetValueInt() == 1) ; for Shane's debugging during layout ; pass along myReference rather than self - ReadBook always wants the book's real reference ; debug.trace(self + " reading - pass along myReference=" + myReference) GetLinkedRef(DLC2LinkBlackBookEnabled).Disable() DLC2BookDungeonController.ReadBook(myReference as DLC2BlackBookScript, self) endif endEvent
Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer) ; when enters player's inventory, swap aliases so that it has full name again if akNewContainer == Game.GetPlayer() ; debug.trace(self + " OnContainerChanged") DLC2BookDungeonController.TakeBook(myReference as DLC2BlackBookScript) endif endEvent
DLC2BookDungeonControllerScript Property DLC2BookDungeonController Auto
ObjectReference Property DungeonMarker Auto { marker to send player to }
Location Property DungeonLocation Auto { dungeon location - REQUIRED - dungeon needs to be all in a single location }
Quest Property myQuest Auto {(optional) quest to set stage on when read}
Int Property myQuestStage Auto {optional quest stage to set when read}
ObjectReference Property myReference Auto {points to reference of this book - necessary because most reference data becomes inaccessible from an inventory object }
;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment ;NEXT FRAGMENT INDEX 3 Scriptname DLC2_QF_DLC2BlackBook04Quest_0203216E Extends Quest Hidden
;BEGIN ALIAS PROPERTY BookTarget ;ALIAS PROPERTY TYPE ReferenceAlias ReferenceAlias Property Alias_BookTarget Auto ;END ALIAS PROPERTY
;BEGIN FRAGMENT Fragment_0 Function Fragment_0() ;BEGIN CODE SetObjectiveDisplayed(10) ;END CODE EndFunction ;END FRAGMENT
;BEGIN FRAGMENT Fragment_2 Function Fragment_2() ;BEGIN CODE DLC2BookDungeonController.IncrementBookFinished() SetObjectiveCompleted(10) Stop() ;END CODE EndFunction ;END FRAGMENT
;END FRAGMENT CODE - Do not edit anything between this and the begin comment
DLC2BookDungeonControllerScript Property DLC2BookDungeonController Auto
Сам перк: не пойму только где он вешается на игрока. Хотя неважно, повесить можно вручную в ките.
DLC2BlackBookCompanionsSafePerk, посмотрите как работает. Там урон не проходит из за CurrentFollowerFaction то есть по суммонам проходить будет. Решение? Поставит кейворд суммонский?
nepewka, первое условие в перке - если цель атаки не является боевой целью игрока. Т.е., если в нее прилетит снаряд фаербола (а не затронет воздействием на площадь), она будет считаться боевой целью (???), урон не предотвратится. Может, из-за этого говорят, что работает так себе.
Multigone, способ кейворд+перк рабочий вприципе, но есть 2 вопроса.
1) Mod Spell Magnitude = 0.0 - это работает для спеллов, а работает ли для энчантов ? они же вроде как тоже через MGEF работают, следовательно должно работать и для них, ведь так?
2) как решить проблему с агро, даже когда 0 урона все равно флаг hostile и рано или поздно непись агриться. Впринципе, как ты говоришь в общем бою даже если случайно заденешь с 0 уроном то непись не обидиться, ведь так? Если да, то это даже не проблема.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №1689
написано: 19 июня 2015, 20:56
| Отредактировано: Multigone - 19 июня 2015, 20:57
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). Ссылка.
Multigone, помнишь мы с тобой спорили на тему, что 2 или 3 суммона лучше одного игрока? Ты все время говорил, что это не так. Так вот, что думаешь когда в роли суммона выступает какой нибудь Карстааг или Эбонитовый воин ?
Кстати, зачем на этом скрине в перке для игрока ты указал GetFactionRelation ? Если одного HasKeyword вполне достаточно, чтобы игрок не наносил урона неписям с этим кейвордом. Или ты указал это, чтобы игрок не наносил урона самому себе со своих аое спеллов (что кстати тоже нужно), но не проще тогда было бы указать GetIsId PlayerRef ? http://jpegshare.net/b9/3b/b93b602d5acb7f12ecf8dfde1b8b27dc.jpg.html
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №1693
написано: 20 июня 2015, 10:47
| Отредактировано: Multigone - 20 июня 2015, 10:59
2) Вообще-то, они должны игнорировать урон только тогда, когда являются союзниками игроку. Ты же не хочешь получить неуязвимых магией врагов-атронахов, если специально их атакуешь вне боя?
3) Игрок и так не наносит себе урона от собственных заклинаний с воздействием на площадь. Проверь, кинь себе под ноги фаербол. Исключение: когда снаряд порождает взрыв, который порождает другой взрыв. В этом случае последний взрыв будет действовать на всех подряд (ему указывается Enchantment с поражающим маг. эффектом FF - Contact).
1) Накрутить цифры параметров НПС - не мой путь. 2) Вообще-то, они должны игнорировать урон только тогда, когда являются союзниками игроку. Ты же не хочешь получить неуязвимых магией атронахов, если специально их атакуешь вне боя?
3) Игрок и так не наносит себе урона от собственных заклинаний с воздействием на площадь. Проверь, кинь себе под ноги фаербол. Исключение: когда снаряд порождает взрыв, который порождает другой взрыв. В этом случае последний взрыв будет действовать на всех без исключения (ему указывается Enchantment с поражающим маг. эффектом FF - Contact).
1) хмм, так то заклинание вызова Карстаага можно получить в ванильной игре выполнив квест. Это не накрутка )
2) Ты прав, не хочу. Но я предпочитаю другой путь и на мой взгляд он более правильный: во избежание конфликтов я вообще не задействую для суммонов ванильных актеров (стараюсь их вообще не редактировать и не трогать, т.к. они много где используются) Я просто делаю дупликат оригинального атронаха, на него вешаю кейворд и вот в таком обличии он уже никак не сможет стать моим врагом. Так что вполне достаточно одного кейворда.
3) Ты как в воду глядел) Про снаряд порождающий другой взрыв. И урон получаемый игроком от собственного же заклинания, которое взрывом вызывает Enchantment с MGEF FF-Contact. как избежать этого урона ?
GetIsId PlayerRef в Condition'сах поможет же, ведь так??
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №1696
написано: 20 июня 2015, 11:12
| Отредактировано: Multigone - 20 июня 2015, 11:14
2) Если ты атакуешь своего уникального атронаха оружием вне боя, он станет врагом, очевидно же. Почему нет?
3) Никак, наоборот, надо все ванильные заклинания переделать, чтобы они не разбирали свой-чужой. Мне, как и Dsion'у, не нравится подобный избирательный подход к их работе. Ну а если все-таки это необходимо, то тут несколько вариантов проверок (в конечном маг. эффекте референс источника заклинания мы определить не можем): - имеет ли цель экипированное заклинание с нужным кейвордом (минус - может выполняться не только для заклинателя) - является ли цель конкретным актером (минус - заклинание можно выдавать только этому актеру).
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №1697
написано: 20 июня 2015, 11:32
| Отредактировано: nepewka - 20 июня 2015, 11:41
2) Если ты атакуешь своего уникального атронаха оружием вне боя, он станет врагом, очевидно же. Почему нет? 3) Никак, наоборот, надо все ванильные заклинания переделать, чтобы они не разбирали свой-чужой. Мне, как и Dsion'у, не нравится подобный избирательный подход к работе заклинаний. Ну а если все-таки это необходимо, то тут несколько вариантов проверок (в конечном маг. эффекте референс источника заклинания мы определить не можем): - имеет ли цель экипированное заклинание с нужным кейвордом (минус - может выполняться не только на заклинателя) - является ли цель конкретным актером (минус - заклинание можно выдавать только этому актеру).
2) Зачем мне его атаковать вне боя, если он служит мне верой и правдой? Цель была в том, чтобы мой аое урон от заклинаний и урон от Взрывов с Enchantment FF-Contact не наносил повреждений мне, моим атронахам и мини атронахам моих атронахов.
3) И какой вариант предлагаешь для защиты от урона Explosion>Enchantment>FF-Contact MGEF ??
Для примера:
- Заклинание Фаерболл вызывает Взрыв1 (тут все в порядке, защищает обычный кейворд) - Взрыв1 вызывает Enchant - EnchFrostDamage1 - EnchFrostDamage1 вызывает Взрыв 2, Взрыв2 в свою очередь вызывает EnchFrostDamage2
Как от этого защититься? ты говоришь кейворд не поможет, тк конечный референс неизвестен. Тогда если в Condition'сах заклинания сделать так чтобы целью небыл нужный нам атронах, мини атронах или игрок???
3) Любой из предложенных. Или делай по кейвордам, это будет наилучшим решением в твоем случае. Кстати, я речь вел о другом - снаряд порождает взрыв, который порождает другой взрыв через Placed Object (выпадающий список в Explosion). Второй взрыв атакует зачарованием FF - Contact.
Кстати, я речь вел о другом - снаряд порождает взрыв, который порождает другой взрыв через Placed Object (выпадающий список в Explosion). Второй взрыв атакует зачарованием FF - Contact.
Ну так я тебе про то же и пишу.
В MGEF Фаерболла скрипт:
explosion property exp01 auto
event oneffectstart (actor Target, actor Caster)
Target.PlaceAtMe(exp01, 1)
endevent
взрыв exp01 вызывает энчант, энчант скриптом вызывает другой взрыв, взрыв опять энчант. --- так вот, я тебя не понял сейчас. Чтобы защититься от такой конструкции, что нужно ? Perk > Keyword не поможет, насколько я тебя понял. Нужно на спелл вешать Condition, чтобы самый первый эффект не запустился и дальнейшая цепочка не заработала. Так ?
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)
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №1701
написано: 20 июня 2015, 12:45
| Отредактировано: nepewka - 20 июня 2015, 12:43
Multigone, спасибо, теперь помимо актеров придется создать кейворды для спеллов?
Добавлено (20 Июня 2015, 15:45) --------------------------------------------- Multigone, кстати как кейворд через алиас повесить на игрока? Можешь указать путь?
event oneffectstart (actor Target, actor Caster) ; событие не сработает, если снаряд не попадет в актера (или в некоторые др. объекты, если задан архетип Scripts) Target.PlaceAtMe(exp01, 1) endevent
explosion property exp01 auto event oneffectstart (actor Target, actor Caster) ; событие не сработает, если снаряд не попадет в актера (или в некоторые др. объекты, если задан архетип Scripts) Target.PlaceAtMe(exp01, 1) endevent
не совсем понял, к чему ты это?
Тут как бы все эффекты разделяются на две группы. (Щас обьясню почему я предпочитаю спеллы с аое, пусть и небольшим, как например Fireball) 1) группа MGEF FireDamageFFAimed - эффект, использующийся при заклинании firebolt, inicirate (имеет другой эффект, но впринципе схожий) . Area effect - 0. Вот здесь твои слова будут верны. Событие не сработает, если не попадаем снарядом. не люблю данные заклинания, так как ими очень легко промахнуться. +Плюс такие MGEF даже не используют explosion как таковой, его у них нет ввиду area эффекта 0, он просто им не нужен. Следовательно говорить о Explosion > Enchant касаемо этих MGEF бесмысленно
2) группа MGEF FireDamageFFAimedArea - эффект, использующийся при заклинании Fireball. Area effect (стандартный) - 15. Мой любимый MGEF. Вот здесь твои слова уже верны не будут. Событие срабатывает если шар взрывается в аое 15 футов, то есть можно даже в землю стрелять, чтобы эффект сработал. (на дальние расстояние так даже выгодней делать, чтобы не промахнуть по цели - лучше целить землю рядом с ним, эффект сработает)
Речь с самого начала шла именно о таких MGEF, здесь никаких проблем с несработкой события не бывает.
nepewka, ну, тебе виднее. Я к тому, что если эффект не наложится на цель (неважно, от попадания снаряда или от действия на площадь), событие не сработает, взрыва не будет. Плюс, если в зоне действия находятся 10 целей, то будет создано 10 взрывов, каждый из которых затронет остальных, и суммарный полученный урон одной такой целью будет равен произведению кол-ва целей на урон взрыва.
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №1706
написано: 20 июня 2015, 19:11
| Отредактировано: nepewka - 20 июня 2015, 19:15
nepewka, вот только в Incoming не передается инфа о источнике заклинания, поэтому он не такой полезный. Т.е. его, в основном, можно использовать для регулирования урона от подходящих групп заклинаний, или в зависимости от состояния носителя перка. В Mod Spell Magnitude также учитывается пригодность цели и ее состояние. Так что разница существенная.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №1708
написано: 20 июня 2015, 19:25
| Отредактировано: Multigone - 20 июня 2015, 19:28
nepewka, естественно. Т.е. лучше всего взять похожее, переименовать, допилить.
не могу избавиться от конфликтов даже при переименовании...
Я делаю новый взрыв, как положено вставляю его в эффект, при попадании он просто не взрывается... Причем работает через раз, то раз сохраню мод не работает, потом заработает, после следущего сохранения опять не работает.
nepewka, наблюдение - после того, как прицепил к MGEF скрипт и настоил Property, не стоит ничего менять в связанном с ним SPEL (или Ability, ENCH и т.д.). Поменял SPEL - заново указал скрипт и Property. У меня из-за этого бывали проблемы, хоть это и звучит, как шаманство.
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)