Multigone, значит вся проблема в том, что при выгрузке нпц он загружает стандартный outfit и если там нету нашего кольца, соответственно никакой абилки не будет.? Окей, ну хотя бы через outfit работает.
Добавлено (22 Июня 2015, 21:14) --------------------------------------------- Dsion, хочу чтобы предметы имели больше импакта в игре, в морровинде вот предметы имеют активные заклинания, здесь же только зачарования. Их доработать и с constant плащами они будут почти как заклинания) )
Так, ребята. Прочитав ещё раз наш диалог от начала и до конца пришел к выводу, что придется отказаться от динамичного добавления актерам spell'ов и ability. Слишком уж геморойно это, хотя от идеи добавления плаща от предмета все же не откажусь. Не побрезгую тем, что придется использовать CK. Тем более я хочу добавить такие предметы всего лишь нескольким актерам через созданный мною outfit. (Dsion, стандартные outfit'ы трогать не буду) Главное чтобы это работало. Ну а с другой стороны, почему работать не будет?? Вы говорите проблема при выгрузке, но если при выгрузке он загружает наш outfit с заскриптованным кольцом, то и проблем не должно быть, ведь так? Хотя с другой стороны многое зависит от того, как работает событие event OnEquipped, если оно каждый раз будет срабатывать при выгрузке нпц и выдавать ему ability то ок. Или же оно срабатывает при появлении игрока? Не важно, главное чтобы оно не зависло и не перестало выдавать ability
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №184
| Тема: Вопросы по скриптам Papyrus
написано: 25 июня 2015, 17:50
| Отредактировано: Multigone - 27 апреля 2020, 17:02
Multigone, помнишь, наш товарищ AlexTirex написал вот такой прекрасный скрипт на неограниченное кол-во здоровье у актеров: (как его адаптировать под игрока?)
Скрипт вешается на Алдуина (тип Actor) или на алиас с Алдуином (тогда добавить GetActorRef()):
Multigone, есть такое дружище, после долгих тестов заметил, что после 10к хп замечаются неоднократные баги в получении урона. Поэтому и нужен скрипт
Добавлено (26 Июня 2015, 00:44) --------------------------------------------- просто после превышения actor value health points 10000 вычисления здоровья производятся неправильно, поэтому надо сделать скрипт 10 тысяч по несколько раз, чтобы это работало нормально
изменить, всмысле лучше вообще убрать? Мне вот akTarget здесь вообще не нравится, цель которая наносит урон может быть любой от монстра1 до монстра5.
А вам что в скрипте не нравится? Deffered kill помоему крутая штука
Добавлено (26 Июня 2015, 18:24) --------------------------------------------- кстати, через что лучше вешать скрипт, через вкладку Actors на конкретного актёра или же на референс актёра через квест с автостартом?
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №187
| Тема: Вопросы по скриптам Papyrus
написано: 28 июня 2015, 19:32
| Отредактировано: Multigone - 27 апреля 2020, 17:05
Multigone, конечно дружище. Сам сколько тестов проводил, ошибки при расчете здоровья свыше 10000 имеют место быть.. Не с проста в Creatiom kit руками актеру больше 10000 не поставишь, стоит ограничение. То есть, ну как бы в наших модах редко здоровье актера превышает 5 тысяч, но в тех где превышает придется все же пользоваться скриптом с deffered kill'ом Добавлено (28 Июня 2015, 22:32) --------------------------------------------- [b]Это при попытке компилирования того скрипта от AlexTirex, эх жаль я раньше его не проверил
D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(7,4): StartDeferredKill is not a function or does not exist D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(11,4): ResetHealthAndLimbs is not a function or does not exist D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(13,6): EndDeferredKill is not a function or does not exist D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(20,5): GetAV is not a function or does not exist D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(20,21): cannot compare a none to a int (cast missing or types unrelated) D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(20,21): cannot relatively compare variables to None D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(22,6): EndDeferredKill is not a function or does not exist D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(27,26): GetBaseAV is not a function or does not exist D:\Games\Elder Scrolls V Skyrim Legendary\Data\Scripts\Source\temp\AAAscript.psc(27,6): RestoreAV is not a function or does not exist
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №188
| Тема: Вопросы по скриптам Papyrus
написано: 28 июня 2015, 22:02
| Отредактировано: nepewka - 28 июня 2015, 22:03
разобрался, проблема была в том, что стандартный extends у Actor почему то objectreference, сменил на extends actor все заработало
Добавлено (29 Июня 2015, 01:02) --------------------------------------------- UPD: по поводу скрипта, работает впринципе нормально. Но ещё не откажусь твой вариант увидеть :)
Кстати, как нельзья кстати оказался твой скрипт с IgnoreFriendlyHits, я заметил что заставить непися избежать от себя урона это пол беды, но вот мини атронахи, призываемые моими атронахамии, агрятся на меня просто писец с какой периодичностью, если я их хотя бы капельку задеваю, и это несмотря на совместный бой. Такие вот дела)
Добавлено (29 Июня 2015, 12:08) --------------------------------------------- не в обиду проделанной работе, скажи пожалуйста, чем этот код лучше небольшого скрипта AlexTirex с DefferedKill ??
просто код огромный и сложноватый для меня, хотелось бы понять чем в работе отличается ?
В одном из комментариев прочитал:
Макс. урон за раз, который может получить актер, не может превышать половины текущего максимума здоровья. Макс. восстановление бонусного здоровья за раз не может превышать такую же величину.
Это что же получается, если атакующий наносит слишком много урона, часть его урона просто будет пропадать вникуда?
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №190
| Тема: Вопросы по скриптам Papyrus
написано: 29 июня 2015, 13:06
| Отредактировано: nepewka - 29 июня 2015, 13:06
Именно. Если текущий максимум здоровья актера = 1000, то хиты величиной больше 500 будут ограничиваться числом 500. Это происходит потому, что текущее значение AV Health (как и сила / магия) не может быть отрицательным числом (наблюдал в игре, однако, сейчас ни в чем нельзя быть уверенным).
это актуально по отношению к вышеописанному скрипту? Или вообще по игре? Если по игре я такого не замечал, тестил заклинания с высоким уроном 3000, 4000, 5000 по актеру со здоровьем 5000. Все нормально работало или что ты имел ввиду?
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №191
| Тема: Вопросы по скриптам Papyrus
написано: 29 июня 2015, 20:31
| Отредактировано: nepewka - 29 июня 2015, 20:30
Multigone, Скажи пожалуйста в чем принципиальное отличие события OnUpdate и цикла в самом эвенте While ?
Это же впринципе одно и тоже... Ну по свойствам и схожей работе..
Я просто предпочитаю while, так как OnUpdate не хочет корректно работать в скриптах с extends ActiveMagicEffect.
Видишь ли, в событии OnEffectStart где есть actor Caster, actor Target... Я могу задать команды, которые я люблю использовать: 1) Caster/Target.Cast 2) Caster/Target.AddSpell 3) Caster/Target.placeatme
А когда я пытаюсь задать эти команды через OnUpdate (чтобы он повторял их с нужной мне переодичностью, он ругается, мол, не знает, к кому я обращаюсь) (не компилирует)
Причем через extends Actor в скрипте Актера вроде OnUpdate нормально работает.
Может быть есть какой то способ заставить OnUpdate работать в среде ActiveMagicEffect или же придется довольствоваться While ??
Добавлено (29 Июня 2015, 23:31) --------------------------------------------- UPD: Multigone, Dsion насчет ваших длинных постов, отвечу чуть позже
Добротный ассассин может нанести больше 10 000 урона одним единственным ударом на сложности "Адепт" или больше 5 000 на сложности "Мастер"... Или в два раза больше серией ударов за одну секунду... Не подумайте, что я для понта пишу... Но просто это надо учитывать.
Для таких вот "ассассинов" и нужны супербоссы с 50000 здоровья :)))
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №193
| Тема: Вопросы по скриптам Papyrus
написано: 29 июня 2015, 22:25
| Отредактировано: nepewka - 29 июня 2015, 22:25
Понятно. Ну и как тебе помогут эти скрипты? Они делают цель неубиваемой только тогда, когда она вступает в бой. Ассассин замочит её раньше, чем скрипт сработает. Ладно, как хотите...
Необязательно. За работу скрипта при вступлении в бой отвечает OnCombatStateChanged, есть ещё OnLoad event делающий цель "неуязвимой", как только ты увидешь 3д модель врага.
Добавлено (30 Июня 2015, 01:25) --------------------------------------------- UPD: Как и событие OnHit, собственно, если я всё правильно понимаю.
Я щас понимаю о чем ты, если скрипт работал бы только по CombatStateChanged он был бы уязвим для любого рода ассасинов, убивающих его до начала боя. Поэтому и нужны разношерстные события
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №194
| Тема: Вопросы по скриптам Papyrus
написано: 30 июня 2015, 00:07
| Отредактировано: nepewka - 30 июня 2015, 00:08
Dsion, Сам не знаю чего возится Не перевелись ещё добрые люди на этой земле и пока они тут, тема на этом форуме будет жить
Чего пытаюсь добиться ? Добавить интереса в "свой" собственный скайрим. Мне не нравится стандартная игра. Её враги, закланания, предметы. Я прошел её всю и есть два выхода. Либо бросить, либо добавить интереса путем добавления нового контента, в первую очередь новых врагов. Стандартные соперники... Не создают никакого челенджа.
Теперь обьясню почему всегда отказываюсь от банальной идеи добавления перков игроку для увеличения сложности игры. Mod Weapon Damage 0.01 Mod Spell Magnitude 0.01
Знаешь, если бы я хотел пойти таким путем, я бы не стал делать перки, зачем? Проще зайти Creation kit > Gameplay > Settings и там изменить настройки для сложности игры. Переделать какой нибудь Мастер, сделав так что бы игрок наносил 1/100 урона по врагу, а враг в 100 раз больше по игроку.
Но всё это обман. В этом нет ничего интересного. А вот создать соперника, с каким нибудь интересным перком, заклинанием, оружием и сразиться с ним - хоть какой то челлендж.
P.S. я не делаю никаких модов, я делаю интересную игру для себя. И главное что дает Multigone, это знания для работы над игрой. За что ему большое спасибо.
Скажи, что не так: Событие OnUpdate в скрипте не выполняется до конца, если у заклинания стоит Full Duration 2sec, а если Duration поставить 0, то OnUpdate и вовсе не запускается. Я так понимаю, OnUpdate теряет актёра, как только endEvent OnEffectStart проходит, как заставить его доработать до конца?
Actor Victim Int Pika
EVENT OnEffectStart(Actor Target, Actor Caster) Victim = Target RegisterForSingleUpdate(0.001) ENDEVENT
EVENT OnUpdate() If Pika == 20 UnregisterForUpdate() else Victim.DamageAV("Health", 100) Pika += 1 endif registerforsingleupdate(0.1) ENDEVENT
Добавлено (30 Июня 2015, 13:17) --------------------------------------------- UPD: вернее теряет актёра, сразу, как только MGEF спадает с цели.
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №197
| Тема: Вопросы по скриптам Papyrus
написано: 30 июня 2015, 11:01
| Отредактировано: nepewka - 30 июня 2015, 11:30
nepewka, ничего не теряется, просто скрипт прекращает работу после завершения маг. эффекта. Если в момент завершения остались какие-то активные события, то они дорабатывают свои задачи, а новые события не происходят. Сумма времени в скрипте и продолжительность маг. эффекта формально совпадают, да. Но, фактически, за 20 обновлений потратится времени больше 2 с. Интервал между последовательными обновлениями складывается из паузы (0.1) и времени на обработку кода (небольшое, но есть). Отсюда разница. Чтобы избежать, ставь продолжительность больше 2 с или увеличивай частоту обновлений.
спасибо, но в таком контексте While для использования повторений будет действительно лучше для меня просто потому, что независимо от MGEF будет всегда дорабатывать до конца
Добрый день. Сегодня пятница, а это значит что сегодня мы разберем очередную сумасшедшую идею!
Давайте ка разберемся с фракциями в игре. Можно ли создать убер агрессивного нпц, который будет нападать на всех кого видит, но если добавить ему фракцию, допустим фракцию игрока, то он будет нападать на всех кроме игрока ?
Как путем спавна двух разных нпц натравить их друг на друга?
Конечная цель: Создать турнир, на котором соберутся все самые великие воины тамриэля! и игрок здесь лишь изредка будет участником, в основном будут бои нпц против нпц.
Наверное, он в алиасе какого-то квеста и на алиасе стоит галочка неубиваемости. Можно замочить скриптовой командой KillEssential() или убрать из алиаса.
точно не это
но я разобрался. Неуязвимость им дает их рабочее место. Кузница, дубильный станок, пост стражника вайтрана. Стоит их оттуда согнать, всё становится нормально.
Если речь о стандартных спутниках/наемниках, то всё в квесте DialogueFollower. Приглашаешь кого-то с собой - срабатывает скрипт и засовывает его в алиас Follower, на котором пакеты следования. Алиас только один и быть в нем может только один NPC. Просто добавить больше алиасов не достаточно. Еще пришлось бы подпилить скрипт и условия на диалогах.
ясненько...
Легче будет постоянно PlayerFollowerCount в консоли прописывать
Доброго времени суток , Multigone и ко. Давненько не заходил на форум и не задавал вам глупых вопросов Не знаю , соскучились вы или нет , но я хотел бы посоветоваться насчёт одного скрипта , который недавно нашёл в моде на перки Ordinator и он меня очень заинтересовал , как и весь мод. Понравились несколько перково-скриптовых механик , они показались мне уникальными.
Сейчас хочу обсудить одну из них.
Вообщем это перк-заклинание - Двемерские автопушки. При изучении перка , нам выдаётся абилка-талант , с помощью которого мы можем вызывать около себя двемерскую установку , которая стоит на месте и стреляет , как артиллерия. Сам скрипт:
Activator Property FXEmptyActivator Auto Activator Property ORD_Smh_DwarvenAutocannon_Activator Auto Float Property ORD_ShootZ Auto Float Property ORD_DistanceInFront Auto Float Property ORD_UpdateRate Auto Float Property ORD_DistanceZ Auto Spell Property ORD_Smh_DwarvenAutocannon_Spell_Proc Auto Sound Property ORD_Smh_DwarvenAutocannon_Marker_Deploy Auto Sound Property ORD_Smh_DwarvenAutocannon_Marker_Destroyed Auto
; remote control Perk Property ORD_Smh30_RemoteControl_Perk_30 Auto Activator Property ORD_Smh_DwarvenAutocannon_Activator_RemoteControl Auto Float Property ORD_RemoteControlDist Auto
; electrobolt Int Property ORD_Electrobolt Auto Spell Property ORD_Smh_DwarvenAutocannon_Spell_Proc_Electrobolt Auto Explosion Property ORD_Smh_DwarvenAutocannon_Explosion_Electrobolt Auto Perk Property ORD_Smh50_Electrobolt_Perk_50 Auto
; spin up Perk Property ORD_Smh80_SpinUp_Perk_80 Auto Float Property ORD_SpeedUpDelta Auto
; firing line Perk Property ORD_Smh70_FiringLine_Perk_70 Auto Float Property ORD_AngleDelta Auto Float Property ORD_Min Auto
; ingredient MiscObject Property ORD_Smh_DwarvenAutocannon_Misc Auto
; -----
Float ShootRate Bool SpinUp Int ShotCount ObjectReference ShootStart ObjectReference ShootAim ObjectReference TheCannon Actor TargetActor Bool IsRemoteControl
; -----
Event OnEffectStart(Actor akTarget, Actor akCaster)
Преследую сразу несколько целей , по его усовершенствованию и адоптации под себя. Что-то подобное я уже обсуждал на этом форуме с АлексТирексом , там были невидимые маркеры , которые путём скрипта кастовали спеллы. Этот же скрипт выглядит как-то разнообразнее и поинтереснее.
Первое , что хотелось бы сделать , это добавить 2 , 3 , 4 , 5 пушку в этот скрипт так , чтобы они стреляли. пока у меня это ну вообще никак не получается , вернее получается с помощью дополнительной функции: TheCannon = akTarget.PlaceAtMe(ORD_Smh_DwarvenAutocannon_Activator, 5) или: сделать новый objectreference TheCannon2 и прописать: TheCannon2 = akTarget.PlaceAtMe(ORD_Smh_DwarvenAutocannon_Activator) так добавляется столько , сколько мне нужно , но они ни в какую не хотят стрелять чтобы я не делал. Максимум , чего удалось добиться : это делать дубликаты этого MGEF и добавлять разные эффекты с дубликатов MGEF в ту самую абилку-талант.
в первую очередь для личного пользования и удобства , никаких модов я не делаю. Так , для себя. Понравилась какая-нибудь механика , записал её для себя , сохранил. В этом списке , кстати , уже не малый вклад от тебя))
В идеале хотелось бы , чтобы все 5 или сколько там угодно пушек , работали и стреляли посредством одного скрипта без дубликатов MGEF. А в двойном идеале , чтобы потом при добавлении второго эффекта в заклинание вызова пушки (с таким же MGEF как и у первого эффекта на вызов 5 пушек), они стакались и работали так , чтобы вызывалось в конечном счёте 10.
Короче говоря , хочется удобства и вариативности, поэтому обращаюсь к тебе)
Добавлено (27 Июля 2016, 22:26) --------------------------------------------- попробовал действовать по твоему совету , убрал апдейт , поставил While. стрельба действительно задавалась в апдейте , как итог у меня получилось так , что из 1 пушки теперь вылетает 5 снарядов. при добавлении второго такого эффекта с этим же MGEF в спелл , работает только один из них/
Вообщем-то почти получилось сделать то, чего я и хотел изначально. Ведь за 1 апдейт тайм вылетает 5 снарядов , что равносильно 5 пушкам. Но при вызове этого заклинания ещё раз - пушка пропадает , а хотелось бы , чтобы она оставалась и работала как Fire and Forget и чтобы одинаковые MGEF стакались
Что вообще происходит с редакторами 4 фола ? Гек вышел , но тема с ним так непопулярна , что я даже не знаю что думать. они там что, пофиксили все возможности к редактированию и созданию модов в этой части игры ? Почему все обсуждают какой-то FO4Edit, а не привычный по тесу и прошлым частям фола GECK Creation kit, или как его там ?
Конечно , как всегда буду рад увидеть твой вариант в действии)
Добавлено (28 Июля 2016, 10:39) ---------------------------------------------
Цитата Multigone
Чтобы это происходило, нужно убрать архетип Scripts, и вместо него поставить ValueMod (параметр Morality, к примеру).
не знаю о каком Morality была речь в effect archetype (это же вроде что-то там из Actor , не?) , но , действительно помогло. Теперь всё стакается и через многократный каст и через одинаковый MGEF) всё стало в разы удобнее, спасибо
пол дела сделано , осталось победить скрипт
Добавлено (28 Июля 2016, 15:36) --------------------------------------------- дошло о чём ты, у меня в параметер здоровье там стоит , но я не заметил что оно какой-то эффект оказывает на меня (в эффекте прописано на себя) , можно None поставить в принципе