Вверх Вниз


Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Вопросы по скриптам Papyrus
sansuli  Offline Сообщение №1 написано: 31 Августа 2012 в 17:29 | Отредактировано: sansuli - Пятница, 17 Апреля 2015, 21:08


The Red Sun


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

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Нарада  Offline Сообщение №2851 написано: 11 Августа 2018 в 17:23 | Отредактировано: Нарада - Суббота, 11 Августа 2018, 18:31



141
Dsion, благодарю за отклик. Насчет общего LeveledItem, попробую. Пусть во всех тавернах продают кофе  :) .
Только какой функцией можно в LeveledItem добавить предмет? Никогда не приходилось применять.
------------------------------------------------------------------------------------------------------
Эта функция?
Function AddForm(Form apForm, int auiLevel, int auiCount) native

Kolyanus93  Offline Сообщение №2852 написано: 13 Августа 2018 в 22:36 | Отредактировано: Kolyanus93 - Понедельник, 13 Августа 2018, 23:01


Странник


36
Доброго времени суток! Решил я значит себе мод установить для восстановления зачарования оружия со временем (а они все завязаны на скриптах) и мой взгляд пал на этот:
Однако меня в нем не устраивает проверка уровня перка Зачарование в оригинале: 1-19 лвл соотношение единиц зачарования к мане составляет 1/8, на 20 - 39 это 1 / 4  и  так далее до 100 - 4 / 1. Полез я в Creation Kit, чтобы поменять соотношение так, как мне нужно. Нашел я это заклинание и его магический эффект - SofiRechargeLPEffect, однако там нигде не было проверки на навык зачарования. Вот в чем собственно и вопрос: как всё же поменять эти коэффициенты? Запутанно написал, однако заранее благодарен, если эту проблему можно решить.

Multigone  Offline Сообщение №2853 написано: 14 Августа 2018 в 05:38



643
Kolyanus93, в SofiRechargeLPScript, строки 148-161.

Kolyanus93  Offline Сообщение №2854 написано: 15 Августа 2018 в 19:03


Странник


36
Multigone, огромное спасибо!

Aksyonov  Offline Сообщение №2855 написано: 26 Августа 2018 в 08:37 | Отредактировано: Aksyonov - Воскресенье, 26 Августа 2018, 08:38



921
Всем привет помогите пожалуйста, я создаю компаньона в ручную с нуля не используя стандартные диалоги существующих компаньонов ничего в общем не юзаю из стандартного - ai пакеты фракции не добавлял стандартные, вопрос такой - при создания нового аи пакета - я используя шаблон аи пакета под названием: FollowPlayer - npc начинает следовать за игроком но не переселяется с ним если он переходит в новую локацию, как это исправить? Присвоить фракцию? Или нужно присвоить отношения, как это делается не знаю скрипта подскажите.

Мой сайт - Сообщество - YouTube Канал - Группа Вконтакте
Нарада  Offline Сообщение №2856 написано: 29 Августа 2018 в 14:08



141
Aksyonov, используемый пакет тут не при чем. Если последователь "дернулся" за ГГ, то пакет работает. Стандартные фракции нужны только для стандартного (ванильного) последователя, чтобы вывести ванильные диалоги с последующими командами. В конкретном вашем случае, скорее всего, или не финизирован переход между локациями, или на пути последователя до маркера перехода имеется кривой навмеш.

Aksyonov  Offline Сообщение №2857 написано: 29 Августа 2018 в 17:05 | Отредактировано: Aksyonov - Среда, 29 Августа 2018, 19:09



921
Цитата Нарада ()
или на пути последователя до маркера перехода имеется кривой навмеш.

То есть достаточно использовать пакет следование за персонажем и он должен автоматически переселятся за гг? Что то я сомневаюсь по поводу нав мешей - попробую так как локация закрытого типа туда никто не может переселится через дверь, нужно обязательно делать вход через дверь? Ну я к тому что бы она была на виду? Или должен быть лишь маркер (желтый) дабы npc смог пройти - и если дело в нав мешах - это может препятствовать переселению npc к гг при использование команды Coc Whiterun, то есть если физически двери входа нет - npc даже через консоль при перемещение не будет перемещаться за гг, верно понимаю?

*Нав меши проверил создал дверей не было выхода из локации тоже - npc пошел за гг конечно, но я не об этом - мне то надо что бы он перемещался со мной как какая нибудь лошадь так же при быстром перемещении по карте m или с применением кода Coc, в общем при быстром путешествии он не следует на гг - а мне нужно сделать именно это, но я не знаю как и какой скрипт использовать.

Мой сайт - Сообщество - YouTube Канал - Группа Вконтакте
Нарада  Offline Сообщение №2858 написано: 30 Августа 2018 в 11:31 | Отредактировано: Нарада - Четверг, 30 Августа 2018, 11:32



141
Это поможет решить проблему:
Event OnActivate(ObjectReference akActionRef)
Game.FastTravel(Marker)
EndEvent

Что касается "СОС", то это тестовая функция.

Aksyonov  Offline Сообщение №2859 написано: 08 Сентября 2018 в 09:05 | Отредактировано: Aksyonov - Суббота, 08 Сентября 2018, 09:08



921
Есть маза )) В общем Всем привет такое дело, эм... если в отношениях NPC с ГГ выставлено Ally по умолчанию будет ли работать скрипт Djiro.StartCombat(game.GetPlayer()) - где Djiro это Npc который должен атаковать гг, почему этого не происходит? Как заставить аттаковать Npc гг невзирая на всё происходящие в мире, то есть где бы то ни был NPC - пошел и начал атаковать ГГ - почему не работает Djiro.StartCombat(game.GetPlayer()) ? Вешаю скрипт начала боя на диалоги квеста.

Добавлено (08 Сентября 2018, 10:15)
---------------------------------------------

Цитата Нарада ()
Это поможет решить проблему:Event OnActivate(ObjectReference akActionRef)
Game.FastTravel(Marker)
EndEvent

Что касается "СОС", то это тестовая функция.

Спасибо попробую, надеюсь всё заработает.

Мой сайт - Сообщество - YouTube Канал - Группа Вконтакте
Dirzi  Offline Сообщение №2860 написано: 08 Сентября 2018 в 11:27


Странник


30
Добрый день.
Подскажите, пожалуйста, есть ли какой-либо способ выводить на экран надпись, имитирующую сообщение об открытии (первом посещении) локации, то есть не по центру с паузой (как в случае с Message Box), и не в верхнем левом углу мелким шрифтом, а именно так, как выглядит в игре срабатывание MapMarker'а. 
Предвидя вопрос "А зачем это, если есть MapMarker?", поясню: как выяснилось, MM работает только в exterior. Хорошо бы, если при посещении отдельных залов и комнат interior-локации появлялись их названия.
Заранее благодарна.

"Не сломано - не чини!"
StanislavD  Offline Сообщение №2861 написано: 08 Сентября 2018 в 11:27 | Отредактировано: ApeX - Суббота, 08 Сентября 2018, 22:08



121
приветствую!

нужен скрипт чтобы отслеживать состояние PortGatePole02 - пика выдвинута, пика убрана...
нужен скрипт чтобы отслеживать состояние TrapLinker - прошла активация через него или нет...
Перемещено в соответствующую тему.
ApeX

Andrey059918  Offline Сообщение №2862 написано: 10 Сентября 2018 в 23:53


Странник


4
Дарова всем
Можно ли открыть меню контейнера, но так, чтобы вместо вкладки Игрока была вкладка другого контейнера?
То есть нужен обмен предметами между двумя контейнерами
Уже 3 день ищу инфу, и в репозитори SkyUI был, и creationkit.com весь излазил - либо я не умею искать, либо это не реализуемо
Помогите чем-нибудь, если можете

Dirzi  Offline Сообщение №2863 написано: 13 Сентября 2018 в 02:18


Странник


30
Еще раз доброго дня (ну, или вечера).
Подскажите, пожалуйста: в стандартном скрипте TrapFlamethrower, согласно внутреннему комментарию, можно выставить любой из ванильных заклинаний:


Допустим, я создала свое собственное заклинание. Каким образом можно его добавить в этот скрипт?

"Не сломано - не чини!"
Dsion  Offline Сообщение №2864 написано: 13 Сентября 2018 в 08:48 | Отредактировано: Dsion - Четверг, 13 Сентября 2018, 08:50



1221
Цитата Dirzi ()
есть ли какой-либо способ выводить на экран надпись, имитирующую сообщение об открытии (первом посещении) локации
Вряд ли... SKSE функции я не очень хорошо знаю, но, по-моему, даже там такого нет...

Цитата Andrey059918 ()
То есть нужен обмен предметами между двумя контейнерами
Тоже нигде не встречал подобной возможности... Открывать можно любой контейнер с любого расстояния, но "сверху" всегда игрок...

Цитата Dirzi ()
в стандартном скрипте TrapFlamethrower

В общем-то, этот скрипт не поддерживает добавление новых заклинаний. Во всяком случае, без изменения кода скрипта, а менять ванильные скрипты - плохой тон.
Можно попробовать два варианта:
1. Заменить одно из заклинаний с скрипте на своё (для одной конкретной ловушки или для нового типа ловушек). Например, выбираем "2 = flames". И вставляем своё заклинание в проперти sLvlFlames1, sLvlFlames2, ..., sLvlFlames6. В иделе, должно быть шесть разных заклинаний разной силы. Но можно заполнить и одинаковым. При этом всём, если ваше заклинание имеет тип chanelling, то нужно заменять заклинание типа chanelling (2, 5 ил 7), а если мгновенное, то одно из мгновенных.
2. Сделать новый скрипт. Либо с нуля, либо постепенно выпиливая лишнее из TrapFlamethrower. Я бы так и сделал... Могу даже попробовать, но проблема в том, что я сейчас торчу в деревне с ноутбуком, на котором нет скайрима. Я не смогу проверить даже то, компилируется ли скрипт, не говоря уже о его работоспособности.

Dirzi  Offline Сообщение №2865 написано: 13 Сентября 2018 в 10:49 | Отредактировано: Dirzi - Четверг, 13 Сентября 2018, 11:02


Странник


30
Цитата Dsion ()
Вряд ли... SKSE функции я не очень хорошо знаю, но, по-моему, даже там такого нет...
Жаль... очень не хотелось бы делать мой interrior как world... ну да ладно; поживем - увидим.

Цитата Dsion ()
а менять ванильные скрипты - плохой тон.
Дело на мой взгляд, не в этической тональной составляющей - я делаю это исключительно для внутреннего использования - а в том, что оригинальный скрипт для игры все-таки тоже нужен.

Цитата Dsion ()
И вставляем своё заклинание в проперти sLvlFlames1, sLvlFlames2, ..., sLvlFlames6.
Звучит просто. Я попробую.
И я так понимаю, создавать и вставлять надо, к примеру, не Frostbite, а TrapFrostbite01, TrapFrostbite02... и так далее, до TrapFrostbite06?

Цитата Dsion ()
Могу даже попробовать, но проблема в том, что я сейчас торчу в деревне с ноутбуком...
Сочувствую вашему положение и благодарна вам за предложение. Но сперва попробую сама - и, как я писала выше, в первую очередь именно вариант с измененной копией скрипта. Каждый раз помогать вы вряд ли сможете (даже если и захотите), а учить Papyrus все равно придется...
Вот если не справлюсь - обращусь с челобитной.
В любом случае, большое вам спасибо за ответ! Да примет вас городская жизнь в свои достойные объятия;)

"Не сломано - не чини!"
Dsion  Offline Сообщение №2866 написано: 13 Сентября 2018 в 12:00 | Отредактировано: Dsion - Четверг, 13 Сентября 2018, 12:05



1221
Цитата Dirzi ()
И я так понимаю, создавать и вставлять надо, к примеру, не Frostbite, а TrapFrostbite01, TrapFrostbite02... и так далее, до TrapFrostbite06?
Я даже не могу проверить, чем заполнены sLvlFlames1 итп. в ванильных ловушках. Подозреваю, что да, там разные spell разной мощности и, ясное дело, с разным названием. Но, теоретически, можно заполнить одинаковым любым spell. Если делать по-первому варианту, то:
1. Находим ванильную ловушку с этим скриптом.
2. Создаем её дубликат.
3. На скрипте дубликата очищаем 6 проперти типа sLvlFlamesX, заполненные какими-то заклинанием, и заполняем их одним своим.
4. Устанавливаем дубликат на пути какого-нибудь мирного путешествинника где-то и заходим в него.
А если создавать свой скрипт и учить папирус, то TrapFlamethrower - не лучший референс... На мой взгляд, он безосновательно запутан и усложнен. Если тебе нужно только одно заклинание одного уровня, то скрипт получится раз в 6 короче.
Ну давай, удачки.

Dirzi  Offline Сообщение №2867 написано: 13 Сентября 2018 в 12:41 | Отредактировано: Dirzi - Четверг, 13 Сентября 2018, 12:43


Странник


30
Цитата Dsion ()
А если создавать свой скрипт и учить папирус
Сударь, Dsion, ужаснитесь: мне неизбежно еще и в Blender'е придется разбираться...
Благо Niffscope относительно освоен (вы не поверите, но метод псевдонаучного тыка и "возьмем на два дюйма правее солнца и посмотрим, что выйдет" дает потрясающие результаты); хотя и не до конца.

Цитата Dsion ()
Если тебе нужно только одно заклинание одного уровня, то скрипт получится раз в 6 короче.
Возможно. Даже, я бы сказала - скорее всего, вы правы.  Но редактировать готовый скрипт (при условии, что писать свои скрипты не умеешь, но в принципе понимаешь что такое язык программирования) чаще куда быстрее. Доводить свое жилище до ума, оптимизировать все до блеска и плеска буду позже; прежде нужно в принципе определить доступные возможности - ведь они влияют на функциональные объекты в interior, а через них и на саму архитектуру помещения

Еще раз мои вам благодарности. К сожалению, повышать репутацию можно лишь раз в сутки:(

"Не сломано - не чини!"
Dsion  Offline Сообщение №2868 написано: 13 Сентября 2018 в 13:25



1221
Цитата Dirzi ()
в Blender'е придется разбираться

Достойная трата времени...
Я где-то месяц назад начал учиться рисовать мангу и постоянно подглядываю в Blender'e, как идут линии и ложатся тени. Моделировать тоже учился, но дальше уровня "начинающего" так и не продвинулся.
Ладненько, удачи.

Если редактировать скрипт, то можно было бы убрать флаг "hidden" с проперти magicWeapon, заполнить её нужным заклинанием и выпилить строчку "magicWeapon = lvlWeapon" из конца функции ResolveLeveledWeapon(). Но это минимум. А вообще, там 5/6 кода можно выпилить.

Dsion  Offline Сообщение №2869 написано: 13 Сентября 2018 в 17:18



1221
Цитата Dirzi ()
то после указания типа заклинания в первой строчке (в моем случае - "7", холод), нужно просто-напросто в свойствах строчек sLvlFrostbite1 - sLvlFrostbite6 выбирать из выпадающего списка не TrapFrostbite01 - TrapFrostbite06, а свое собственное заклинание; хотя бы и одно и то же на все шесть позиций. И все.

То есть, вы хотите сказать, что:

Цитата Dsion ()
1. ... Заменить одно из заклинаний с скрипте на своё (для одной конкретной ловушки или для нового типа ловушек). Например, выбираем "2 = flames". И вставляем своё заклинание в проперти sLvlFlames1, sLvlFlames2, ..., sLvlFlames6. В иделе, должно быть шесть разных заклинаний разной силы. Но можно заполнить и одинаковым

Для кого я вообще эту хрень писал?(
А дальше я еще писал, что вариант это не изящный и лучше сделать свой скрипт...

Dirzi  Offline Сообщение №2870 написано: 13 Сентября 2018 в 17:32 | Отредактировано: Dirzi - Четверг, 13 Сентября 2018, 17:40


Странник


30
Если честно, я ваши слова:

Цитата Dsion ()
... Заменить одно из заклинаний в скрипте на своё
...поняла как "заменить непосредственно в тексте скрипта". Возможно, моя неопытность в терминологии скриптинга/моддинга и не извиняет меня в достаточной степени, но вы, мягко говоря, горячитесь избыточно. Если вас так волнует вопрос приоритета решения - я удалю свой предыдущий комментарий.

"Не сломано - не чини!"
Andrey059918  Offline Сообщение №2871 написано: 14 Сентября 2018 в 18:11


Странник


4
Пока читал эту тему, заметил несколько сообщений насчёт кракозябр при вызове GetName() из SKSE
Модеры, может стоит добавить в шапку темы, что нужен SKSE Russian Fix?
(Кстати, что-то я его не нашел на ModGames.net)

ApeX  Offline Сообщение №2872 написано: 14 Сентября 2018 в 18:55





494
Как только будет внятная инфа, то она будет добавлена в шапку. Примеры такому в разделах Fallout.
А вообще-то, лучшим вариантом для сбора инфы был бы аналог Картотеки. Это способствовало бы развитию моддинга, поскольку уже были бы ответы на многие вопросы. Но в свое время раздел Скайрима пошел по другому пути.

Ab altero expectes, alteri quod feceris
Unlogin  Offline Сообщение №2873 написано: 21 Сентября 2018 в 16:06


Странник


4
Не знаю, жив ли тут кто, но у меня, как ни странно, возник вопрос... точнее 2...
Предыстория: создал перк. Хочу, что бы перк работал только на тот предмет, который держал игрок в правой руке во время чтения заклинания. И тут же возникли проблемы...

1) не получается в ReferenceAlias скриптом ForceRefTo заполнить оружие из руки игрока. Читал тут комменты, и понял, что предметы инвентаря не имеют своих ID (и я убедился в этом, прописав такую штуку "ObjectReference orWeap = Caster.GetEquippedWeapon() as objectreference"). Есть ли хоть какой-то способ манипулировать конкретной ссылкой на оружие в руке игрока вне границ одного скрипта (для базовых объектов, значит, беседчики придумали Formlist, а тут "на" тебе - не понятно, что за дела)

2) даже если бы каким-то непонятным чудом получилось бы прописать реф оружия в алиас скрипта, как заставить перк принимать этот алиас? В кондишнах перепробовал все возможные функции - ничего подобного нет (точнее, есть функция IsAliasRef, но там нельзя выбрать квест [как так???]). 

Есть ли надежда хоть как-то эту чушь провернуть?

No Caption
Dsion  Offline Сообщение №2874 написано: 21 Сентября 2018 в 19:21



1221
Unlogin, чо-то у меня тоже никаких идей.
Ну до того, что можно отменять эффект перка навсегда, если игрок сменит оружие, ты, наверное, додумался. Не совсем то, но лорно. Выпустил оружие из рук - разорвал связь.
До того, что можно сохранять базовый ID тоже, наверняка, додумался. Большинство ванильных орудий имеют разные базовые id для разных типов зачарования. Но это будет давать сбой, если игрок наденет оружие такого же типа с таким же зачарованием. И в случае предметов, которые ирок сам заточил/зачаровал тоже будут сбои. Я бы так не делал.
Ну еще жутко неудобный вариант, когда игрок должен выбросить оружие на землю (или на какой-то алтарь), чтоб зачаровать.

Больше нифига в голову не приходит... Я бы просто отменял эффект навсегда в случае смены оружие.

Я даже когда-то читал про один баг. В какой-то там ветке есть перк, делающий надетую на игрока бронь невесомой. Так вот этот перк делает невесомой не только надетую бронь, а и точно такую же, лежащую в инвентаре.

Multigone  Offline Сообщение №2875 написано: 23 Сентября 2018 в 07:04



643
Unlogin, что должен делать перк?

Unlogin  Offline Сообщение №2876 написано: 23 Сентября 2018 в 18:09


Странник


4
Dsion, вот с вариантом про алтарь я как-то не подумал... можно же контейнер для этой цели использовать... ну, ладно, как зафиксировать конкретный реф оружия, возможно, разобрались. А как потом этот реф в перке использовать - пока что загадка. Или наоборот, как перк использовать только на реф.

Multigone, я так-то думал несколько сделать. Например, шанс крита. Типа, ты наделись конкретно своё оружие особенной силой, которая увеличивает шанс крита. Если короче, то хотел руны в Скайрим добавить. Что б совсем эпично было - зачаровал оружие, наточил его, руну нанёс, и это уже мега-артефакт...

No Caption
Multigone  Offline Сообщение №2877 написано: 24 Сентября 2018 в 10:45 | Отредактировано: Multigone - Понедельник, 24 Сентября 2018, 10:51



643
Unlogin, чтобы узнать референс непостоянного объекта, нужно его выбросить в мир. Далее - им заполняется алиас (optional), он считается постоянным и его референс существует внутри инвентаря. В алиасе указывается ключ. слово для перка. Таким способом можно отметить <= 128 ед. оружия на один квест.
Можно сделать что-то вроде алтаря, при активации которого на него помещается оружие из правой (левой) руки. Например, для квеста со 128 алиасами (нумерация 0-127) в простейшем случае это будет выглядеть так:


Код
; На активатор алтаря

Quest Property MyQuest Auto
ObjectReference Property MyAltarMarker Auto

EVENT OnActivate(ObjectReference akActionRef)
    GoToState("Wait")
    IF (akActionRef AS Actor).GetEquippedObject(1) AS Weapon
        Int iCount
        WHILE (MyQuest.GetAlias(iCount) AS ReferenceAlias).GetReference() && iCount < 128
            iCount += 1
        ENDWHILE
        IF iCount < 128
            ObjectReference xRef = akActionRef.DropObject((akActionRef AS Actor).GetEquippedObject(1))
            xRef.MoveTo(MyAltarMarker)
            (MyQuest.GetAlias(iCount) AS ReferenceAlias).ForceRefTo(xRef)
        ELSE
            Debug.MessageBox("Свободных мест нет.")
        ENDIF
    ENDIF
    GoToState("")
ENDEVENT

STATE Wait
    EVENT OnActivate(ObjectReference akActionRef)
    ENDEVENT
ENDSTATE

walimonz  Offline Сообщение №2878 написано: 21 Октября 2018 в 03:16


Странник


2
Всем привет, подскажите пожалуйста скрипт на одноразовый телепорт, активировал и он выключился или сам предмет исчез.
И скрипт на тп лута с персонажа. Активировал и с ГГ снимается одежда, оружие и весь лут и перемещается в определенный ящик.
Заранее спасибо.

Добавлено (22 Октября 2018, 17:01)
---------------------------------------------
Нужен скрипт на перемещение содержимого инвентаря в ящик. То есть - ГГ активирует предмет и переноситься в определенную точку(тп при активации я уже сделал) и у него пустой инвентарь все перенеслось в определенный ящик. Помогите пожалуйста со скриптом.


Myprism  Offline Сообщение №2879 написано: 05 Декабря 2018 в 20:40


Физик


1445
Существует хорошо известный глюк использования физики - это её "бешенство". При выходе персонажа в отрытый мир (не в интерьер) волосы или плащ начинают метаться. Через некоторое время могут успокоиться, а могут и нет. Тогда персонаж становится невидимым. Так как это происходит только в открытых локациях, то можно предположить, что физика глючит из-за того, что локация не успевает прогрузиться. Но задержка появления персонажа, увы не помогает. Зато великолепно всё исправляется, если задержать появление в открытой локации только шмотки с физикой относительно появления персонажа, на коем эта шмотка надета. Например, достаточно задержать появление волос относительно персонажа на 2 секунды, чтобы проблем с ними не было совсем. На эти 2 секунды их можно заменить волосами без физики. Вопрос в том, как написать скрипт, который бы находился на одеваемой шмотке и засекал, когда персонаж меняет локацию и выходит в открытый мир. Скрипт, который делает это, вися на персонаже, я написал и он великолепно исправляет физику волос. Но мне нужен скрипт именно на шмотках. Ведь не вешать же скрипт на каждого персонажа Скайрима! Гораздо правильнее - повесить его на ограниченное число проблемных шмоток с физикой (плащи, волосы). Да, шмотки раздаются персонажам через оутфиты и левельные списки.

Aksyonov  Offline Сообщение №2880 написано: 05 Декабря 2018 в 22:31



921
Цитата Myprism ()
Гораздо правильнее

А условия Condition Functions не подойдут? Для определения работы скрипта? IsInteier там и подобное? Если в интерьере тогда запускать скрипт если не в интерьере тогда не запускать, я помню так делал, весьма работало неплохо.

Мой сайт - Сообщество - YouTube Канал - Группа Вконтакте
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Поиск: