Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)

Вопросы по скриптам Papyrus
sansuli  Offline  Сообщение №1 написано: 31 августа 2012, 13:29 | Отредактировано: Multigone - 23 апреля 2020, 14:24


The Red Sun


193
Уроки по скриптованию на языке Papyrus
Прежде чем задать вопрос просмотрите вышеуказанные уроки.
ok


Тема регламентирована.


• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней.
• Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней.
• При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС.
• При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "
+" полезного сообщения.

Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
AleksTirex  Offline  Сообщение №871 написано: 4 апреля 2014, 17:13


Архимаг


371
anton, у меня на озере, недалеко от Ривервуда в Полулунной лесопилке, есть лодка, на которой можно покататься по озеру. Можно с собой и подружек взять и покатать их. Лодка плавает, управляется, по ней можно ходить во время плавания и т.д. (но не ГГ, т.к. управление лодкой повторяет управление ГГ, а НПС могут по ней ходить)
Т.е. всё работает. Вот только проблему столкновения с препятствиями и берегом я не стал решать, так и оставил - лодка их не видит.
 
Эвента на столкновение с коллизией нет, в бехавиоре другой принцип - он использует эвенты для запуска анимации, а не генерит само событие. Это событие/эвент с привязкой к объекту генерит движок, а бехавиор реагирует на него и запускает нужную анимацию на нужном объекте (точнее это движок запускает анимацию, ведь бехавиор - это в принципе как список анимаций, а не исполнительное устройство). Если движок сгенерил событие Weapequip_Out, то бехавиор запускает анимацию вынимания оружия из ножен. А вот почему движок сгенерил это событие - он сам знает (нажата кнопка №№, если событие на НПС, то при начале атаки или режима Alert и т.д.).
Так же и с приземлением - движок определяет это дело, и выдаёт нужную команду/событие и т.д. И не факт, что можно найти и "выцепить" само событие приземления, в лучшем случае, можно засечь реакцию движка на это дело (например, запуск анимации приземления).
 
Высота прыжка действительно не зависит от анимации, это длительность воспроизведения/работы самой анимации зависит от высоты. Сама анимация прыжка длится около 10 сек. (точно не помню), и этого хватает для любой высоты.
SpeedMult - это скорость перемещения НПС. В параметрах/скиллах есть JumpingBonus, но вот работает ли он... не знаю.
akActor.SetAV("JumpingBonus", 100) - ??? я что-то разницы не замечал.

Добавлено (04 Апреля 2014, 21:09)
---------------------------------------------

Цитата anton

1. Коллизия у "статика" сама всё таки не перемещается. (перемещаю триггером со скриптом, командой Stone.TranslateToRef(Place, StoneSpeed))



Не Static, а MovableStatic. ;)  На статике и не будет работать, этот объект надо в моваблестатике прописать.

Добавлено (04 Апреля 2014, 21:13)
---------------------------------------------
anton, попробуй так: Game.SetGameSettingFloat("fJumpHeightMin", 200.0)


LordVadim  Offline  Сообщение №872 написано: 4 апреля 2014, 17:35



139
Цитата AleksTirex

Не Static, а MovableStatic.  На статике и не будет работать, этот объект надо в моваблестатике прописать.


А MovableStatic, в скрипте создать, я так понимаю, не реально?

anton  Offline  Сообщение №873 написано: 4 апреля 2014, 20:00



362
Цитата AleksTirex

попробуй так: Game.SetGameSettingFloat("fJumpHeightMin", 200.0)


попробовал - работает :) , спасибо !

Мой Блог
AleksTirex  Offline  Сообщение №874 написано: 4 апреля 2014, 20:49


Архимаг


371
Цитата LordVadim

Попробовал и так и так, эффект одинаковый. Вот скриншоты настроек моих обьектов, может там ещё что то не так ? :



Да, вот это поменяй на это:
 
Deactivator Type - DEACTIVATOR_NEVER
Solver Deactivation - SOLVER_DEACTIVATION_OFF
Quality Type - MO_QUAL_INVALID
Mass - 0.0000

Это будет имитацией статика, ведь тебе именно статик надо двигать? В этом варианте можно будет бегать по нему во время его движения.

anton  Offline  Сообщение №875 написано: 4 апреля 2014, 21:25



362
Цитата AleksTirex

Да, вот это поменяй на это:


Поменял - всё равно не работает, коллизия осталась на месте :(
Когда то читал на форумах, ребята пытались побороть эту проблему, но ни у кого так ничего и не вышло.
Я удивляюсь как у тебя лодка работает ?

Мой Блог
AleksTirex  Offline  Сообщение №876 написано: 4 апреля 2014, 22:52 | Отредактировано: AleksTirex - 4 апреля 2014, 23:30


Архимаг


371
anton, попробуй мою лодку: http://rghost.ru/53777742  она то точно работает. Запускай на лодку TranslateTo() к дальнему маркеру с небольшой скоростью, и прыгай в неё. Конечно, она проходит сквозь другие статики, но на мобильные объекты работает с коллизией. Хотя, так и должно быть, ведь в самом Скайриме статик со статиком не могут взаимодействовать, движок на это не рассчитан/не умеет, да и не должен, на коллизию реагируют только мобильные объекты.

*******
anton, у меня в доме ещё и ковёр такой сделан, под ним люк скрывается, так когда его сдвигаешь, то наибольшую радость это доставляет кошаку, он на нём катается, очень прикольно смотрится. :)
Кстати, сам ковёр сделан вообще "активатор", а не моваблестатик, и коллизия двигается вместе с самим ковром.

*******
*******
Пы.Сы. Я бы мог выложить этот мод со всеми этими "наворотами", но там проблема - не могу найти девчонок на озвучку, мод то "компаньон", поэтому озвучка просто необходима, а так мод уже готов (осталось чуточку доделать одежду).

LordVadim  Offline  Сообщение №877 написано: 5 апреля 2014, 05:23 | Отредактировано: LordVadim - 5 апреля 2014, 05:28



139
Цитата anton

Поменял - всё равно не работает, коллизия осталась на месте


anton, я вместо Static использовал MiscObject с подправленым, по совету Алекса, нифом. Все работает, коллизия перемещается, ГГ свободно ходит по объекту во время перемещения, единственно если объект перемещать слишком быстро (особенно вверх) ГГ может в него провалиться. MovableStatic не использовал, так как объект у меня создается в скрипте.

сергей007788  Offline  Сообщение №878 написано: 5 апреля 2014, 07:08



76
C MovableStatic сделал так, вытащил ниф файл нужного мне статика и в КС в окне редактирования подходящего MovableStatic поменял Ниф на Ниф статика, и все работает. В Ниф файле не вносил ни каких изменений.
И вопросик.
Можно ли как отследить количество неудачных попыток взлома сундука.

Raser0919  Offline  Сообщение №879 написано: 5 апреля 2014, 08:06



409
Вопрос можно. Как сделать так чтобы скрипт работал мгновенно. Без ожиданий, без очереди. Как повысить приоритет скрипта так, чтобы он выполнялся прежде всех других и выполнялся независимо от количества фпс?

DarkVetal  Сообщение №880 написано: 5 апреля 2014, 08:20

Raser0919, присоединяюсь к вопросу. У меня мод запакован в бса-архив, и при высоких настройках графики скрипты либо тормозят, либо вобще не срабатывают: в моем новом моде свет должен срабатывать автоматически, но при запаковке в архив и выставлении ультра-графики всё тормозит.

Raser0919  Offline  Сообщение №881 написано: 5 апреля 2014, 08:51



409
Кто знает. Какова скорость срабатывания команд в Script Dragon?

anton  Offline  Сообщение №882 написано: 5 апреля 2014, 09:46



362
AleksTirex, действительно работает ! это я сам был виноват. :(
Я использовал сейв файл, но забыл что изменил скрипт. А ведь в этой **** игре если скрипт уже попал в сейв, то просто так уже он не изменится.
И в итоге скрипт продолжал двигать старый обьект, а я этого в упор не замечал, пока форму ему не сменил на лодку (до этого они были одинаковые и стояли в одном месте).

Так что покатался я и на твоей лодке и на своём камушке :)
Вот только если просто стоять на статике во время движения, то ГГ начинает трясти как паралитика вверх-вниз. Но если в это время двигаться, то анимация остаётся нормальной. Наверное это так в игре "инверсная кинематика" ног действует, или скорее всего движок начинает считать, что я падаю и пытается проиграть анимацию приземления. (т.к. мой камень по диагонали вниз спускается). Интересно можно ли его будет как то обмануть ...

Цитата AleksTirex

Кстати, сам ковёр сделан вообще "активатор",


А я заметил, когда изменил объект из обычного в "Movable Static", у него появилась возможность активации. Когда на него курсор наводишь, он пишет своё имя и предлагает нажать кнопку "Е" (взять). Правда ничего при этом не происходит )).

ПС: Эх, жаль, хотел бы посмотреть на катающегося на ковре кота ! :)
Для компаньона озвучка и уникальное поведение - очень важны. Я за такими компаньонами "охочусь". ))
Может попробовать тут на сайте кастинг провести ? :D наверняка найдутся таланты !
Или ещё вариант - можно попробовать связаться с ребятами, которые анимешки озвучивают ( анидаб / анимереактор ...). У них голоса есть просто потрясающие ! Может и не откажутся озвучить несколько строчек...

Мой Блог
AleksTirex  Offline  Сообщение №883 написано: 5 апреля 2014, 13:16


Архимаг


371
Цитата anton

Вот только если просто стоять на статике во время движения, то ГГ начинает трясти как паралитика вверх-вниз. Но если в это время двигаться, то анимация остаётся нормальной. Наверное это так в игре "инверсная кинематика" ног действует, или скорее всего движок начинает считать, что я падаю и пытается проиграть анимацию приземления. (т.к. мой камень по диагонали вниз спускается). Интересно можно ли его будет как то обмануть ...



Можно уменьшить скорость камня. Можно на момент нахождения на камне и его движения привязать коллизию ГГ к камню SetVehicle(камень). (эту команду надо прописывать самой последней, иначе ГГ может не привязаться к камню) При этом горизонтальное перемещение ГГ будет только в плоскости камня, точнее в плоскости той точки на момент привязки. Т.е. бугры/ямки и другие неровности камня ГГ будет игнорировать.

anton  Offline  Сообщение №884 написано: 5 апреля 2014, 14:32



362
Цитата AleksTirex

привязать коллизию ГГ к камню SetVehicle(камень).


интересно, не думал, что так можно, считал что для этого камень должен быть типа "лошадь" и иметь нод в НИФ-е для привязки, но попробую...

==================================================================================
А тем временем я продолжаю собирать материал для будущей "шапки" :) :

* задача: подпрыгнуть высоко в воздух и там зависнуть, пока ... пока "шапку" не сниму

* решение: прыжок увеличил и падение вроде как отключил:
--> "Game.SetGameSettingFloat("fJumpHeightMin", 200.0)"
--> "Utility.SetIniFloat("fInAirFallingCharGravityMult:Havok",0)"
но мой ГГ всё равно по тихоньку начинает падать вниз (медленно, но уверенно)

* вопрос: есть ли способ перевести ГГ в режим парения на месте (как у драконов) ? (чтобы не отключать силу притяжения всей игре)
(может есть ещё какая то переменная, типа "bFlyingState", куда надо 1-ку записать ? )
(ведь есть же функция "GetFlyingState()", а вот "SetFlyingState()" я не нашёл)

И ещё интересные моды сегодня нашёл, связанные с полётом: "Flyable Dragon Races 3 - BURNING SKIES" и "Festive Flight - A Flying Mount for Christmas"
(кстати в обоих коллизии при полёте прекрасно работают)
Интересно №1, я так понял, что в моде, где ГГ-дракон, для полёта используется невидимый обьект к которому ГГ-дракон и направляется скриптом, выходит так он и летает ? (ну то есть не по настоящему, не с помощью движка игры)(но как то же он тут парит, и не падает)
Интересно №2, как олень из 2-го мода набирает высоту ? Ему невидимую плоскость с коллизией подставляют под ноги ?
(кстати в обоих модах есть упоминание фейк-поверхности, может это и есть решение для парения в воздухе...)

Мой Блог
AleksTirex  Offline  Сообщение №885 написано: 5 апреля 2014, 15:27


Архимаг


371
Цитата anton

интересно, не думал, что так можно, считал что для этого камень должен быть типа "лошадь" и иметь нод в НИФ-е для привязки, но попробую...



Подругой Вильи она не будет, она дружит только с Лидией, а если обнаружит присутствие любого другого компаньона - сразу уйдёт, в гареме жить не будет, да и делить своего ГГ с кем-то тоже не станет.
Далее по теме: в этом моде используется своя анимация и для её работы приходится привязывать НПС или ГГ к объектам. Так я просто создаю в нужном месте XMarkerHeading и к нему привязываю. Т.е. НПС можно привязать вообще к любому объекту. По окончании процесса просто удаляю этот маркер.
 
Так вот и ты можешь в верхней точке прыжка создать маркер и привязать к нему ГГ, так он не станет подать, пока не отвяжешь от маркера.
 
У драконов свой принцип передвижения, они не навмешами пользуются, а картой высот данной местности. Поэтому сам принцип драконов не применить к ГГ/НПС.
 
Как сделаны те моды - не знаю.
Можно применить для левитации/полёта простой (относительно) способ: привязать ГГ/НПС к маркеру, (или к модели дракона) и двигать этот маркер и ГГ командой TranslateTo(). Цель этой команде можно по разному задавать: или постоянно перемещать целевой маркер вперёд перед ГГ, или вычислять координаты по камере+углу_зрения+и т.д.
Нечто подобное у меня сделано для управления лодкой. (но без привязки к ней ГГ, это вариант я потом попробую реализовать)

ГГ-дракон, скорее всего сделан проще - командой переключается камера на дракона и отдаётся управление драконом игроку вместо персонажа ГГ, это всего пару дефолтных команд. Сам же ГГ визуально отключается и периодически переносится/подтягивается к дракону, для правильной загрузки локации. Возможно, так там и сделано, это один из вариантов, а как именно они сделали - я не знаю.

anton  Offline  Сообщение №886 написано: 5 апреля 2014, 16:20



362
AleksTirex, попробовал я SetVehicle() - она привязала ГГ к камню (с низу) или к лодке (нормально), но в обоих случаях без возможности двигаться (хотя анимация движения есть но ГГ стоит при этом на месте)

Буду попробовать химичить с маркером ...

Мой Блог
AleksTirex  Offline  Сообщение №887 написано: 5 апреля 2014, 16:38


Архимаг


371
Цитата anton

AleksTirex, попробовал я SetVehicle() - она привязала ГГ к камню (с низу) или к лодке (нормально), но в обоих случаях без возможности двигаться (хотя анимация движения есть но ГГ стоит при этом на месте)



Привязка идёт к главному ноду модели, и если надо привязать к другой координате, то надо изменить ниф: коллизию и видимую часть сдвинуть, т.к. основной нод сдвинуть без Макса нельзя.
 
Можешь попробовать вариант:
DisablePlayerControls()
SetVehicle()
EnablePlayerControls()
 
Так, по идее, ГГ должен начать двигаться после привязки. У меня ГГ двигается, проходит сквозь стены любого магазина... и т.д. :D

anton  Offline  Сообщение №888 написано: 5 апреля 2014, 17:22 | Отредактировано: anton - 5 апреля 2014, 17:23



362
Цитата AleksTirex

то надо изменить ниф: коллизию и видимую часть сдвинуть


Да, это я попробовал, но угадать куда улетит коллизия довольно сложно. Отношение где то 1 юнит смещения коллизии для 100 юнитов смещения меша.
В общем, проще новую сделать.
С EnablePlayerControls() тоже не работает. ГГ стоит в центре лодки, лодка едет, а он всё стоит...
В общем пока без SetVehicle() лучше (по крайней мере если двигаться по прямой).
В этом случае ГГ бегает по камню как угодно, только выпадает часто :) ; особенно от первого лица - даже по прямой, даже если не двигаться !
Но если использовать коллизию как у лодки, то все проблемы отпадают. ГГ цепляется ногой за одно из сидений лодки и прекрасно едет в любом из видов.

Мой Блог
nepewka  Offline  Сообщение №889 написано: 5 апреля 2014, 17:46 | Отредактировано: nepewka - 5 апреля 2014, 17:51



255
Подскажите, можно ли как нибудь получить эффект сбрасывания больших кулдаунов на таланты (eg berserker rage Orc) из TGM? (the god mode)

Я так понимаю в СК это нигде редактировать нельзя, остаются скрипты... Нужно получить эффект сбрасывания кулдаунов из консольной команды TGM и сделать с ним скрипт, чтобы появилась возможность использовать его без TGM.

Заранее спасибо!!

anton  Offline  Сообщение №890 написано: 5 апреля 2014, 19:54



362
AleksTirex, с маркером, ГГ и SetVehicle() всё получилось, и работает именно так как ты описывал - ГГ свободно двигается в плоскости, и проходит сквозь все обьекты кроме НПС.
Есть ещё особенность: ГГ не прилипает к коллизии маркера (как было с "Movable Static"), а фиксируется на той высоте, на которой сработала команда SetVehicle(). (я ставил маркер по PlaceAtMe(ГГ) + MoveTo(ГГ,0,0,800) на высоте 800 юнитов над ГГ, но ГГ туда не поднялся, а остался на высоте прыжка)

Мой Блог
AleksTirex  Offline  Сообщение №891 написано: 5 апреля 2014, 21:41 | Отредактировано: AleksTirex - 5 апреля 2014, 21:46


Архимаг


371
Цитата anton

Есть ещё особенность: ГГ не прилипает к коллизии маркера (как было с "Movable Static"), а фиксируется на той высоте, на которой сработала команда SetVehicle().



Да, всё правильно, так и должно быть, я именно это и писал: "При этом горизонтальное перемещение ГГ будет только в плоскости камня, точнее в плоскости той точки на момент привязки." А возможная причина - отсутствие коллизии у объекта (маркера). Как мне кажется, движок при этой команде попросту назначает коллизию целевого объекта на привязываемый объект (актёру). Ведь у актёров нет своей коллизии, она "назначаемая" (в модели актёров нет коллизии), и при смерти её тоже нет.
Так вот, если у камня убрать коллизию вообще (из нифа), то возможно, ГГ сможет перемещаться как и в случае с маркером. Этот эффект можно тогда будет применить для любых "лифтов", и для твоего камня тоже. Хотя, тогда придётся и самого ГГ "транслировать" вместе с камнем, да и "умный" ГГ сможет выбежать за пределы лифта/камня, стены то его не остановят...

**************
nepewka, ничего не понятно. Объясни "на пальцах" то, что ты хочешь получит в итоге. (например, ГГ сильно ударили, а ему пофиг и здоровье не упало)

nepewka  Offline  Сообщение №892 написано: 6 апреля 2014, 04:10 | Отредактировано: nepewka - 6 апреля 2014, 06:53



255
AlexTirex всё уже, я решил вопрос ;)

Но есть новая задачка, для всего форума! Назовем это вопросом дня!

Итак задача:

Есть обьект - дракон Алдуин.
Допустим у него 5000 здоровья.

Цель - теоритически, дать ему 3 жизни. Или 15 тысяч здоровья, путем скрипта.

Обьясню:

У него 5000 здоровья, при получении смертельного урона срабатывает эффект, добавляющий ему 5000 здоровья от 0. (желательно без задержек и выхода из боя)
И так ещё раз, после того как он якобы умрет.

Цель - обойти, максимальное кол-во здоровья которое можно установить в Creation Kit'e любому актеру.

То есть, в ките допустим у алдуина будет 5000, а путем скрипта он при получении смертельного урона, будет получать всё свое здоровье назад и так 2 раза. Потом уже умирает, если мы сможем продамажить его на 15000.

Какое может быть решение?

Надеюсь меня все поняли, очень нужна помощь в решении вопроса :)

З.ы. В СК на простое изменение здоровья обьекту не направлять!

сергей007788  Offline  Сообщение №893 написано: 6 апреля 2014, 09:10



76
Цитата nepewka

Цель - обойти, максимальное кол-во здоровья которое можно установить в Creation Kit'e любому актеру.



1 Можно дать перк мертвые души
2 Есть перк у гг там скрипт, когда у нпк становиться мало жизней у него востанавливаются 200 ед здоровья, скрипт соответственно подкоректировать, сам перк по мойму находится в ветке востоновления.
 
И вопросик не большой. Кто нибудь сталкивался с такой проблемой. Когда гг превращаешь в какую нибудь расу,
 

Target.SetRace(PolymorphRace), то камера почему то болтается в ногах. С веровульфами все нормально а с остальными, вот такая ерунда.

anton  Offline  Сообщение №894 написано: 6 апреля 2014, 09:10



362
Ещё одно маленькое наблюдение для SetVehicle():
- при привязке к маркеру, команда TranslateTo() двигает только ГГ, но не Маркер.
- при привязке к MovableStatic(лодка/камень), команда TranslateTo() двигает только этот Статик (вместе с ГГ), самого ГГ переместить ею уже нельзя.
- при привязке к MovableStatic(ванильная черепушка), команда TranslateTo() вообще ничего не двигает, а ГГ валяется на полу как какая нибудь фурнитура. :)

И попутно вопросик: а может ли команда TranslateToRef() перестить к маркеру, который находится за пределами загруженных ячеек ?
Например, если ГГ стоит в Рифтене, а маркер - в Вайтране, станет ли эта команда перемещать ГГ в Вайтран ?

Мой Блог
сергей007788  Offline  Сообщение №895 написано: 6 апреля 2014, 09:13



76
Цитата anton

И попутно вопросик: а может ли команда TranslateToRef() перестить к маркеру, который находится за пределами загруженных ячеек ?  Например, если ГГ стоит в Рифтене, а маркер - в Вайтране, станет ли эта команда перемещать ГГ в Вайтран ?



Я пробывал с кораблем, когда ставил его далеко от гг он не плыл, ставил ближе, плыл. Тоже хотелось бы узнать как решить эту проблему.

anton  Offline  Сообщение №896 написано: 6 апреля 2014, 09:16



362
Цитата сергей007788

камера почему то болтается в ногах


наверное потому, что в их скелетах отсутствуют НиНоды для камеры, типа "Camera3rd [Cam3]" или "CameraControl".

Мой Блог
AleksTirex  Offline  Сообщение №897 написано: 6 апреля 2014, 19:05


Архимаг


371
Цитата nepewka

У него 5000 здоровья, при получении смертельного урона срабатывает эффект, добавляющий ему 5000 здоровья от 0. (желательно без задержек и выхода из боя)  И так ещё раз, после того как он якобы умрет.



Скрипт вешается на Алдуина (тип Actor) или на алиас с Алдуином (тогда добавить GetActorRef()):
 

int iNext
 
Event OnCombatStateChanged(Actor akTarget, int aeCombatState)
  if aeCombatState == 1 && akTarget == Game.GetPlayer()
    StartDeferredKill()
    RegisterForSingleUpdate(1.0)
  elseif aeCombatState == 0
    UnregisterForUpdate()
    ResetHealthAndLimbs()
    if iNext == 0
      EndDeferredKill()
    endif
    iNext = 0
  endif
endEvent

 
Event OnUpdate()  
  if GetAV("Health") <= 0
    if iNext == 2
      EndDeferredKill()
      UnregisterForUpdate()
      return
    else
      iNext += 1
      RestoreAV("Health", GetBaseAV("Health"))
    endif
  endif
  RegisterForSingleUpdate(1.0)
endEvent


MemoriaVetusta  Offline  Сообщение №898 написано: 6 апреля 2014, 19:42



173
А не проще добавить ему способность (Perk):

Mod Incoming Damage = *Х (например, 0,25)
Mod Armor Rating = *X

В результате входящий урон от оружия и заклинаний снижается в Х раз (во столько, во сколько раз требуется повысить его здоровье), соответственно, во столько же раз снижается броня, чтобы соотношение (входящий урон/броня) оставалось постоянным (иначе после изменений урон от оружия может быть меньше уровня брони). Mod Incoming Damage, если не ошибаюсь, применяется для любого входящего урона от любых источников (оружие, магия, яды, и т.д.), т.е. по сути, эквивалент повышения здоровья.

Nothing is...
nepewka  Offline  Сообщение №899 написано: 7 апреля 2014, 08:13 | Отредактировано: nepewka - 7 апреля 2014, 08:14



255
Цитата MemoriaVetusta

А не проще добавить ему способность (Perk): Mod Incoming Damage = *Х (например, 0,25)
Mod Armor Rating = *X

В результате входящий урон от оружия и заклинаний снижается в Х раз (во столько, во сколько раз требуется повысить его здоровье), соответственно, во столько же раз снижается броня, чтобы соотношение (входящий урон/броня) оставалось постоянным (иначе после изменений урон от оружия может быть меньше уровня брони). Mod Incoming Damage, если не ошибаюсь, применяется для любого входящего урона от любых источников (оружие, магия, яды, и т.д.), т.е. по сути, эквивалент повышения здоровья.


нет, я хотел именно количество здоровья ему увеличить, Incoming Damage - уж слишком примитивный обход. ;;

AlexTirex, как всегда 

Добавлено (07 Апреля 2014, 12:13)
---------------------------------------------
add:

Alex, чтобы контролировать кол-во добавляемого здоровья в скрипте вместо GetBaseAV("Health"), привязать int с числом?

скажем вместо базового здоровья,  добавить определенное число 3000, 4000

AleksTirex  Offline  Сообщение №900 написано: 7 апреля 2014, 14:51


Архимаг


371
Цитата nepewka

Alex, чтобы контролировать кол-во добавляемого здоровья в скрипте вместо GetBaseAV("Health"), привязать int с числом?  скажем вместо базового здоровья,  добавить определенное число 3000, 4000



Можно и цифры использовать. GetBaseAV("Health") - это чтобы не писать цифры, а восстанавливать здоровье на 100% от базового, ведь неизвестно, какие моды как смогут изменить базовое значение здоровья. В таком варианте будет полное исцеление вне зависимости от изначального здоровья дракона. 

******
Число надо не int, а float.

Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Поиск:





Ответ на жалобу смотрите в разделе жалоб