Multigone, спасибо. Встречался с заклинаниями , которые вызывают какой-либо шторм и снаряды при этом кастуются с неба ? (метеоритный дождь или вызов шторма (такой крик вроде в оригинальной игре есть)
так вот , вопрос. такие заклинания , как правило , работают только Outdoor , то есть на открой площади , вне подземелий и строений. (также как и вызов дракона , работает только на улице)
Можно ли как-нибудь сделать , чтобы они работали везде , в том числе и в подземельях ?
Multigone, привет понравилась тут одна механика в моде перма.
заклинание, которое при активации "оживляет" экипированный на нас меч в правой руке (а если есть ещё один перк, то и в левой) как это работает: через скрипт вызывается невидимой расы Actor и ему присваивается наше оружие.
визуально это выглядит как: просто появляется летающий меч , который летает и атакует врагов.
что мне не нравится в суммонах-мечниках (например дремора) , что если их вызвать 10 штук , из-за своего большого размера , 3-4 из них окружат одну цель и будут её атаковать , а другие 6-7 будут бегать вокруг и тупить, так вот , вопрос:
в случае с этой механикой и невидимой расой actor , можно ли сделать так , чтобы эти мечи накладывались друг на друга (как например двемерские автопушки из твоего скрипта) и атаковали все сразу и многократно ???
а не так как дреморы: несколько атакуют , остальные тупят. То есть в идеале хотелось бы так , чтобы сколько угодно этих невидимых actorov-мечей я бы не вызывал , все из них могли бы одновременно наносить удары
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №214
| Тема: Вопросы по скриптам Papyrus
написано: 1 августа 2016, 07:57
| Отредактировано: Multigone - 23 апреля 2020, 14:51
а какие эвенты для кастов спеллов мы можем использовать в Activator'e ?
Допустим есть заклинание , оно вызывает взрыв , взрыв в свою очередь вызывает Placed Object (допустим коробку, которая будет во вкладке Activator) Какие скрипты можно использовать на этой коробке ?
Видел , как в перме для кастов спеллов подобным образом использовался Event OnHit
Код
Scriptname xMAALTSpellPrismScript extends ObjectReference int toDestruct = 10
explosion property xMAALTSpellPrismCreateExplosion auto explosion property xMAALTSpellPrismDestroyExplosion auto
Activator Property FXEmptyActivator Auto
spell property xMAALTSpellPrismDestructionspell Auto spell property xMAALTSpellPrismAlterationspell Auto spell property xMAALTSpellPrismConjurationspell Auto spell property xMAALTSpellPrismRestorationspell Auto spell property xMAALTSpellPrismIllusionspell Auto
Я так понял, этот скрипт заставляет некий объект, когда тот получает хит, создавать такое же заклинание (по кругу?), каким его ударили.
механика интересная.
типа да , попадаешь заклинанием в объект - он по кругу - по всем сторонам выпускает 18 (или 21, не понял по коду скрипта?) снаряда я вот тоже по-началу думал , что заклинания , каким его ударили , только в скрипте в properties стоят ссылки на определенные спеллы , следовательно нет...
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №216
| Тема: Вопросы по скриптам Papyrus
написано: 1 августа 2016, 14:01
| Отредактировано: nepewka - 1 августа 2016, 14:07
У игрока есть заклинание , которое при взрыве Placed Object'ом вызывает некий объект будь-то коробка или ещё что или же вызывает его многократно если надо, функцией в скрипте заклинания MGEF target.placeatme(activator_korobka, 10)
этот объект/ы появляются на короткое время (30-60сек) и наводят шорох , затем исчезают. (их работу мы уже прописываем в отдельных скриптах во вкладке Activator)
как по мне прикольное заклинание получилось бы ;)
только как бы сделать поуникальнее его , поинтереснее что ли ? Чтобы каждая коробка кастовала 1 условный фаербол каждую секунду или же наоборот выпускала по 18 снарядов в разные стороны раз в 10 секунд ? Предложи чего-нибудь) Спасибо
Одновременно снаряды не могут вылетать, для обработки каждого следующего направления требуется время порядка 0.1 с.
видимо это актуально , только когда даёшь команду стрелять по разным направлениям ? Когда объект стреляет в одну точку - несколько снарядов визуально вылетают моментально (как было замечено мною с теми же двемерскими автопушками)
Добавлено (01 Августа 2016, 20:03) --------------------------------------------- Multigone, кстати , а как работает скрипт обработки стрельбы ? допустим мы заспавним в одном и том же месте 10 одинаковых коробок с одним и тем же скриптом.
Обработка стрельбы и соответственно вылет снарядов будет производиться одновременно для каждой коробки ? То есть задержек стрельбы между 1 , 4, 7 и 10 коробки не будет ? По идее
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №218
| Тема: Вопросы по скриптам Papyrus
написано: 2 августа 2016, 07:02
| Отредактировано: Multigone - 23 апреля 2020, 14:58
Multigone, ну пока решил начать с самого простого:
есть заклинание (малая способность), при касте которой в цель вылетает снаряд. При соприкосновении он создает 10 коробок (Вот здесь вопрос, как сделать ? Чтобы он размещал 10 Placed Object'ов активатором или взрывом через Placed Object в Explosion ? Я так думаю, без разницы? ) Скрипт в MGEF снаряда (Fire and Forget, aimed):
Код
scriptname aA11 extends ActiveMagicEffect
activator property OurBox auto explosion property BoxExplosion auto
Cкрипт самого Placed Object'a в Activator. Вот тут 2 вопроса: нужен ли маркер, как было с двемерскими автопушками ? и как быть с временем работы ? Я не совсем понял. В MGEF у нас есть Duration и OnEffectFinish, мы таким способом можем закрыть WHILE, а как его закрыть здесь, чтобы коробка проработала ровно 30 секунд ? 10 коробок простоят 30 секунд, выпуская по 1 фаерболлу раз в 1,5 секунды в цель, куда смотрит персонаж :
Код
scriptname aA22 extends ObjectReference
Activator Property FXEmptyActivator Auto Actor property playerref auto
Spell property Fireball auto
int WorkTime = 0 float CharacterAngle float ShootTime = 1.5
Multigone, прошарив нексус на поиск модов по рунам , не нашёл ничего интереснее , чем модов на изменение ренжа каста рун + измнение самого капера рун.
Лично мне , не нравится в рунах то , что они ставятся только по одной руне за раз(в смысле за 1 каст). Их нужно часто перекастовывать , направляя курсор на землю , что ни есть удобно.
Хотелось бы сделать заклинание , в котором за 1 каст рун , их будет ставится допустим сразу 3 , причём не в 1 месте , а как-то так: х - 3 руна (шаг вперед) х - 2 руна (шаг вперед) х - 1 руна (на которую мы навели курсор)
Вообще , кастануть 3 руны сразу в принципе не проблема. Можно воспользоваться скриптом OnSpellCast через формлист можно даже как-нибудь через костыли: вызвать 3 взрыва через скрипт , а во взрыве поставить Projectile рун (на сколько я помню руны работают именно через Projectile > Explosion) , но тут сложнее будет.
Самое сложное конечно это сделать так , чтобы кастанув первую , другие две поставились не в 1 месте там где первая, а чуть в других
Добавлено (03 Августа 2016, 15:11) --------------------------------------------- как-то так , всё работает, только: 1) как бы сделать так, чтобы ставились они всё же чуть подальше друг от друга , а не в 1 месте ? 2) с целью балансировки хотелось прикрутить cooldown секунд на 10 на это заклинание , это вообще возможно в редакторе ?
Код
Scriptname aa10 extends activemagiceffect
Formlist property aa auto actor target = none
Event OnEffectStart(actor t, actor c) target = t EndEvent
Event OnEffectFinish(actor t, actor c) target = None EndEvent
Event onSpellCast(Form s) if aa.hasForm(s) (s as Spell).cast(target, None) (s as Spell).cast(target, None) endif EndEvent
Multigone, можно ли вообще повесить кулдауны на обычные спеллы/зачарования в скайриме ?
вот знаю, что есть кулдаун на малой способности (но он вроде единичный для всех и задаётся в настройках), есть кулдаун на крики. А на эти вещи можно как-нибудь сделать ?
Спасибо. Да я как-то сомневался, как еквипитем может заработать, если а)предмета в инвентаре нет б)в коде не написан слот, куда одевать в)сам по себе скрипт этот хочу впихнуть в магический эффект, чтобы от аое взрыва спелла/энчанта на группу актеров, через команду target можно было всех заставить скушать этот ингредиент/пищу
Нужен скрипт для магического эффекта который выдавал жертве Keyword помогите пж
зачем тебе скрипт ? Сам магический эффект может вешать конкретный кейворд, который нужен. если ты в дальнейшем как-то через скрипт хочешь обратиться к объекту с конкретным кейвордом есть условие: HasMagicEffectWithKeyword сама конкретная команда по добавлению кейворда, если я правильно помню появилась только с 4 фолла.
в скайриме же кейворды вешаются через формы, к которым потом можно обратиться в скрипте через HasKeyword.
///////////////////////////// To All, подскажите если мне удалось получить референс цели через скрипт активного магического эффекта, могу ли я каким-то образом воспроизвести этот референс в другом скрипте, скажем маркера активатора ?
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №224
| Тема: Вопросы по скриптам Papyrus
написано: 19 января 2020, 13:28
| Отредактировано: Multigone - 21 апреля 2020, 20:08
Здравствуйте. Существует ли скриптовая команда, с помощью которой можно проверить количество одних и тех маг. эффектов на цели ? К примеру скастовал на цель 3 заклинания с мгновенным уроном и каким-то уроном на 5 сек например. Все эти 5 сек на цели будут висеть 3 одинаковых маг эффекта. Как скриптом сделать проверку на них в количестве 3 ?
Спасибо А если идти от обратного, я могу же использовать способ с предметами и на уникальных актёрах ? Вообщем выдал я в скрипте маг.эффекта тагрету предметы, какой командой сделать проверку на количество этих N предметов?
Есть перк, хочу выдать его всем нпц и монстрам в игре, существует ли возможность выдать его посредством скрипта ? (напомню в Fallout 4 перки можно динамически вешать на нпц, в отличии от Skyrim ) Нужен какой-то оптимальный метод, по которому можно обратиться ко всему игровому миру и ввести скриптовую команду addperk
Привет! Да тоже самое что и в Скайриме, тот же ведь движок скриптовый. С той лишь разницей что доработали некоторые вещи, типа выдача динамически перков любому актёру через скрипт, что было недоступно в Скайриме.
Цитата Multigone
Особенности работы скриптов в F4 можно обсудить в этой теме.
Там раздел мёртвый( а так как скрипты один в один в двух играх, думаю лучше писать сюда)
Цитата Multigone
1) Создается заклинание с FF / Self / Area, на что-либо вешается скрипт с апдейтом Х сек., кастующим это заклинание игроком. На заклинании скрипт, добавляющий попавшим в зону действия целям это Ability.
Этот вариант мне кажется проще и интереснее.
В F4 нету возможности что-либо кастовать самому, но можно это сделать через энчант на какой-нибудь вещи и потом через скрипт в MGEF повесить заклинание на игрока с селфкастом.
Нужно сделать так, чтобы это происходило автономно и с периодичностью такой, чтобы если начался бой(даже не наш если), актёры участвующие в нём получали эту Ability/Perk
Введу в курс дела: идея заключается в том, чтобы сделать кастомный резист к тому или иному типу урона, чтобы он просчитывался через перк и мог снижаться от входящего урона.
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №230
| Тема: Вопросы по скриптам Papyrus
написано: 24 апреля 2022, 20:25
| Отредактировано: Multigone - 24 апреля 2022, 21:17
чтобы это работало, нужно взаимодействие между скриптом и заклинанием. Каковы особенности редактора в F4, не в курсе. Поэтому, если нужно, могу расписать версию для СК Скайрима.
с удовольствием рассмотрю твоё предложение)
идея отличается от того, что предложил Lexo ?
Попытаюсь ещё больше вести в курс дела того, что хочу сделать.
Дело в том, что в F4 своеобразная система работы резистов по урону, в которой не обошлось без васянства разработчиков.
Два основных вида урона в игре - физический(баллистический. обычные виды оружия) и энергетический (всякие лазерки, плазма пушки) Формула снижения урона работает таким образом, что чем больше урон превосходит резист, тем больше будет входящий урон, вплоть до 99% и наоборот, если резист(броня) больше урона, вплоть до снижения урона в 91%. Так должно быть в идеале и так работают игровые формулы с физическим уроном, но не работают таковым образом с энергетическим. Формулы считают только базовый энергетический урон, но при этом не считают уйму бонусов, с помощью которых этот базовый урон можно увеличить. А для физического всё считают нормально.
В следствии чего получается, что физический урон при прочих равных всегда превосходит энергетический. Доходит до абсурда, вплоть до того, что непись может иметь физ резиста больше, чем энерго, но при этом физ оружие по нему будет бить больше, чем энерго. Из-за кривости формул.
Причём из-за того, что навасянили на уровне формул, которые хардкодовые, исправить это невозможно. Сама беседа, конечно, за много лет игры это не исправила.
Как я планирую исправить данную проблему:
1) Убрать зависимость энерго резиста от движковых формул. 2) Создать свою собственную систему снижения урона через перки и кастомные Actor values (для тех кто не в курсе, одно из нововведений в F4 - возможность создавать свои собственные Actor value ) 3) Сам перк будет выглядеть вот так:
Entry point: Mod typed incoming weapon damage в кейвордах укажем, что наш урон энергетический
4) Перк должен висеть на всех актёрах в игре, в том числе и на игроке. Как видите на скриншоте мы можем регулировать получаемый актёром урон на число actor value его брони с нужным нам множителем, надо только поставить + или - , чтобы перк срабатывал как снижение урона.
Также мы можем создать уникальный вид урона и регулировать его через кастомные actor value в перке. Это если будем возиться с новыми типами урона, но в таком случае придётся в предметах брони или статах неписей прописывать значение кастомного actor value
Пока что не будем ничего создавать в плане новых типов урона, а пофиксим работу сломанного энергетическог урона. Для этого, как вы уже поняли нам понадобится Ability на игроке, который будет вешать этот перк неписям вокруг него.
Как-то так, надеюсь теперь вам понятнее стала задача Спасибо за помощь!
А пока жду вашего ответа не вопрос выше, у меня назрел ещё один.
В Perk -> Perk entry есть есть вот такой Papyrus fragment. Скажите, могу ли я через него обратиться к актёру и изменить скажем actor value через ModAv ? Причём желательно не через game.getplayer(), а как-нибудь через akAktor. Нужно чтобы это срабатывало на всех актёрах, на которых висит данный перк энтри, не только к игроку.
Можно и через Ability это делать, но это не совсем удобно. В мире F4 существуют перки с большим кол-вом Pekr Entry, которые активируются в разных ситуациях на разных актёрах по кейворду, поэтому было бы здорово если бы через этот fragment я мог как-то взаимодействовать с actor value актёра на котором работает данный Perk entry (не перк в целом, а Perk entry) если это возможно конечно ?
2) Думаю, нужно сперва написать ";" в тексте, затем скомпилировать, закрыть и заново открыть окно перка, в окне редактирования свойств скрипта добавить новую ActorValue Property Health, и только потом писать akActor.ModValue(Health, 10.0). Впрочем, я не знаю, не разбираюсь, не могу проверить
не помогает( но без property нормально компилирует actorvalue health
Multigone, в общем уже и не важно, оно не работает так, как я хотел был, добавляет непонятно как значение AV видимо придётся искать ответ в Ability... либо возможно попробовать Quest как Perk entry ?
Я изначально хотел просто вести подсчёт % увеличения урона в созданном мною Actor value то есть если перк даёт 1.20 множитель, я просто приписываю к актёру скажем в этом же перке сразу ModValue(CustomAV, 1.20) и так в каждом перке.
чтобы потом в каком-нибудь скрипте взять базовый урон, допустим в магии или энчанте и перемножить его на этот CustomAV
но этот перк fragment работает без затычки, накладывая много много раз
есть идеи, как выполнить эту задачу по подсчёту всего урона через ВСЕ Perk Entry, но так чтобы это срабатывало один раз, а не множество ?
nepewka, нет. Activate добавляет выбор или доп. действие при активации предмета (игроком?). Как с помощью этого поменять AV у актера-НПС? Никак.
а если создать Perk Entry - Quest, каждый новый перк энтри будет иметь свою стадию квеста, а в квесте по каждой стадии прописать фрагмент с изменением значения AV, это сработает на актёрах или только на игроке ?