• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней. • Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней. • При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС. • При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "+" полезного сообщения.
Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.
Красное солнце Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Actor FUNCTION MyFun(Actor xCaster, ActorBase xCreatureBase, MiscObject xMarkerItem = none, Float fRadius = 500.0, Int iAttempts = 10) Actor xSomething WHILE iAttempts > 0 xSomething = Game.FindRandomActorFromRef(xCaster, fRadius) IF xSomething && xSomething != xCaster && xSomething.GetActorBase() == xCreatureBase && !xSomething.GetItemCount(xMarkerItem) xSomething.AddItem(xMarkerItem) RETURN xSomething ENDIF iAttempts -= 1 ENDWHILE ENDFUNCTION
Пример вызова:
Код
ActorBase Property SummonAtronachFire Auto MiscObject Property xDetector Auto ; Создать пустой неиграбельный предмет, служит для отметки существа, что оно найдено.
Actor xSummoned
EVENT OnEffectStart(Actor xT, Actor xC) Utility.Wait(1.0) ; Ждем, пока будет кого искать. xSummoned = MyFun(xT, SummonAtronachFire, xDetector) Utility.Wait(5.0) xSummoned.Kill() ENDEVENT
Как изменить количество отмычек в тюрьме? Мб за это отвечает какая-то global, или скрипт? Есть желание поменять их количество. На нексусе информации не нашёл по этому вопросу.
Изменение репутации для пользователя Aksyonov
AksyonovOffline
Сообщение №2673
написано: 14 июля 2018, 05:22
| Отредактировано: Aksyonov - 14 июля 2018, 05:22
Всем привет кто нибудь знает как заставить говорить (вызвать диалоги с призванным существом) именно с призванным а не с Actror, так как вот когда призывной персонаж Actor является призывным, и призывается заклинанием почему то он не говорит хотя диалоги прописаны в квесте и реплики тоже, окно диалога не появляется в чём проблема, раньше не озвучивал призраков, призывных - может призывные не могут говорить вообще? Если так может кто знает как тогда призвать (псевдо призвать) актера при надевании кольца - что бы выглядел как призыв но вызывался актер с шейдером духа а не призванное существо? (эффект внешний духа сделать не проблема) надо как то решать вопрос, буду рад любой подсказки, спасибо.
Aksyonov, попробуй поменять призываемого актера на НПС, например, Лидию, или любого, кто гарантированно имеет возможность диалога. Убедись, что в расе твоего призываемого существа есть флаг Allow PC Dialogue.
Изменение репутации для пользователя Aksyonov
AksyonovOffline
Сообщение №2675
написано: 14 июля 2018, 09:34
| Отредактировано: Aksyonov - 14 июля 2018, 09:35
попробуй поменять призываемого актера на НПС, например, Лидию
Призвал Лидию таким же способом через выбор Assoc. item 1 магическом эффекте, молчит, получается все NPC у которых отмечен флажок: Summonable, не говорят, а значит реализовать призыв полноценного компаньона через добавление заклинания когда одеваешь кольцо, не получиться, остаётся использовать какую нибудь функцию типа Place at me, и так далее что бы просто поместить NPC обычного возле игрока на тригер а до появления Npc кастовать на его место ещё и эффект с призывом (саму сферу) что то не могу припомнить реального призрака который бы хоть что то бормотал после призыва - хотя они же вроде стонут, это тоже реплика, звук, и каким же образом она тогда выводиться у конкретного призрака? Надо потрошись наверное самих призраков подобных верно? В правильном ли направлении копаю?
посмотри, как сделан дремора-торговец в драгонборне.
Спс гляну, если найду как сделано отпишусь - может кому то будет полезно кроме меня.
Добавлено (01 Августа 2018, 11:37) --------------------------------------------- Всем привет, скажите может кто из вас знает как можно скриптом добавить заклинание определенному NPC - ну скажем эффект свечение из NPC в совангарде обычному NPC что бы у него появилось свечение, нужно для задачи небольшой, хочу превратить обычных оживших трупов в призраков после того как они возродятся (визуально в призраков)
Изменение репутации для пользователя Нарада
НарадаOffline
Сообщение №2678
написано: 11 августа 2018, 12:22
| Отредактировано: Нарада - 11 августа 2018, 12:22
Здравствуйте, делаю мод и столкнулся с проблемой, что не могу программно добавить торговцам предмет, в часности кофе барману в таверне. Такой код ни к чему не приводит. Кофе не появляется у торговца.
Potion Property Coffe Auto ObjectReference Property ChefSudiREF Auto
Нарада, у торговцев для продажи есть спец. сундук, у каждого свой, указывается в одной из его faction во вкладке Vendor, одноразовое добавление в долгосрочной перспективе ни к чему не приведет, поскольку сундук каждые несколько дней перезагружает свой лут.
Я бы делал так: где-нибудь создал постоянный апдейт с небольшим периодом, добавлял в этот сундук 1 неигровой проверочный предмет и остальные основные предметы. Добавление должно происходить только в случае, если сундук не содержит проверочного предмета (т.е. произошло обновление содержимого). Поскольку неигровой предмет не может быть куплен. А может, я бы сделал через постоянно перезапускаемый квест с алиасом этого сундука, в котором указаны добавляемые предметы. Не знаю, что лучше.
Dsion, благодарю за отклик. Насчет общего LeveledItem, попробую. Пусть во всех тавернах продают кофе . Только какой функцией можно в LeveledItem добавить предмет? Никогда не приходилось применять. ------------------------------------------------------------------------------------------------------ Эта функция? Function AddForm(Form apForm, int auiLevel, int auiCount) native
Изменение репутации для пользователя Kolyanus93
Kolyanus93Offline
Сообщение №2683
написано: 13 августа 2018, 19:36
| Отредактировано: Multigone - 22 апреля 2020, 15:18
Доброго времени суток! Решил я значит себе мод установить для восстановления зачарования оружия со временем (а они все завязаны на скриптах) и мой взгляд пал на этот. Однако меня в нем не устраивает проверка уровня перка Зачарование в оригинале: 1-19 лвл соотношение единиц зачарования к мане составляет 1/8, на 20 - 39 это 1 / 4 и так далее до 100 - 4 / 1. Полез я в Creation Kit, чтобы поменять соотношение так, как мне нужно. Нашел я это заклинание и его магический эффект - SofiRechargeLPEffect, однако там нигде не было проверки на навык зачарования. Вот в чем собственно и вопрос: как всё же поменять эти коэффициенты? Запутанно написал, однако заранее благодарен, если эту проблему можно решить.
Ответ: в SofiRechargeLPScript, строки 148-161.
Изменение репутации для пользователя Aksyonov
AksyonovOffline
Сообщение №2684
написано: 26 августа 2018, 05:37
| Отредактировано: Aksyonov - 26 августа 2018, 05:38
Всем привет помогите пожалуйста, я создаю компаньона в ручную с нуля не используя стандартные диалоги существующих компаньонов ничего в общем не юзаю из стандартного - ai пакеты фракции не добавлял стандартные, вопрос такой - при создания нового аи пакета - я используя шаблон аи пакета под названием: FollowPlayer - npc начинает следовать за игроком но не переселяется с ним если он переходит в новую локацию, как это исправить? Присвоить фракцию? Или нужно присвоить отношения, как это делается не знаю скрипта подскажите.
Aksyonov,используемый пакет тут не при чем. Если последователь "дернулся" за ГГ, то пакет работает. Стандартные фракции нужны только для стандартного (ванильного) последователя, чтобы вывести ванильные диалоги с последующими командами. В конкретном вашем случае, скорее всего, или не финизирован переход между локациями, или на пути последователя до маркера перехода имеется кривой навмеш.
Изменение репутации для пользователя Aksyonov
AksyonovOffline
Сообщение №2686
написано: 29 августа 2018, 14:05
| Отредактировано: Aksyonov - 29 августа 2018, 16:09
или на пути последователя до маркера перехода имеется кривой навмеш.
То есть достаточно использовать пакет следование за персонажем и он должен автоматически переселятся за гг? Что то я сомневаюсь по поводу нав мешей - попробую так как локация закрытого типа туда никто не может переселится через дверь, нужно обязательно делать вход через дверь? Ну я к тому что бы она была на виду? Или должен быть лишь маркер (желтый) дабы npc смог пройти - и если дело в нав мешах - это может препятствовать переселению npc к гг при использование команды Coc Whiterun, то есть если физически двери входа нет - npc даже через консоль при перемещение не будет перемещаться за гг, верно понимаю?
*Нав меши проверил создал дверей не было выхода из локации тоже - npc пошел за гг конечно, но я не об этом - мне то надо что бы он перемещался со мной как какая нибудь лошадь так же при быстром перемещении по карте m или с применением кода Coc, в общем при быстром путешествии он не следует на гг - а мне нужно сделать именно это, но я не знаю как и какой скрипт использовать.
Изменение репутации для пользователя Нарада
НарадаOffline
Сообщение №2687
написано: 30 августа 2018, 08:31
| Отредактировано: Нарада - 30 августа 2018, 08:32
Есть маза )) В общем Всем привет такое дело, эм... если в отношениях 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
Добрый день. Подскажите, пожалуйста, есть ли какой-либо способ выводить на экран надпись, имитирующую сообщение об открытии (первом посещении) локации, то есть не по центру с паузой (как в случае с Message Box), и не в верхнем левом углу мелким шрифтом, а именно так, как выглядит в игре срабатывание MapMarker'а. Предвидя вопрос "А зачем это, если есть MapMarker?", поясню: как выяснилось, MM работает только в exterior. Хорошо бы, если при посещении отдельных залов и комнат interior-локации появлялись их названия. Заранее благодарна.
"Не сломано - не чини!"
Изменение репутации для пользователя StanislavD
StanislavDOffline
Сообщение №2690
написано: 8 сентября 2018, 08:27
| Отредактировано: ApeX - 8 сентября 2018, 19:08
нужен скрипт чтобы отслеживать состояние PortGatePole02 - пика выдвинута, пика убрана... нужен скрипт чтобы отслеживать состояние TrapLinker - прошла активация через него или нет...Перемещено в соответствующую тему. ApeX
Дарова всем Можно ли открыть меню контейнера, но так, чтобы вместо вкладки Игрока была вкладка другого контейнера? То есть нужен обмен предметами между двумя контейнерами Уже 3 день ищу инфу, и в репозитори SkyUI был, и creationkit.com весь излазил - либо я не умею искать, либо это не реализуемо Помогите чем-нибудь, если можете
Еще раз доброго дня (ну, или вечера). Подскажите, пожалуйста: в стандартном скрипте TrapFlamethrower, согласно внутреннему комментарию, можно выставить любой из ванильных заклинаний:
{The type of spell to cast, the leveled version is resolved internally 0 = firebolt 1 = fireball 2 = flames 3 = lightning bolt 4 = chain lightning 5 = sparks 6 = ice spike 7 = frostbite 8 = ice storm }
Допустим, я создала свое собственное заклинание. Каким образом можно его добавить в этот скрипт?
"Не сломано - не чини!"
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №2693
написано: 13 сентября 2018, 05:48
| Отредактировано: Dsion - 13 сентября 2018, 05:50
В общем-то, этот скрипт не поддерживает добавление новых заклинаний. Во всяком случае, без изменения кода скрипта, а менять ванильные скрипты - плохой тон. Можно попробовать два варианта: 1. Заменить одно из заклинаний с скрипте на своё (для одной конкретной ловушки или для нового типа ловушек). Например, выбираем "2 = flames". И вставляем своё заклинание в проперти sLvlFlames1, sLvlFlames2, ..., sLvlFlames6. В иделе, должно быть шесть разных заклинаний разной силы. Но можно заполнить и одинаковым. При этом всём, если ваше заклинание имеет тип chanelling, то нужно заменять заклинание типа chanelling (2, 5 ил 7), а если мгновенное, то одно из мгновенных. 2. Сделать новый скрипт. Либо с нуля, либо постепенно выпиливая лишнее из TrapFlamethrower. Я бы так и сделал... Могу даже попробовать, но проблема в том, что я сейчас торчу в деревне с ноутбуком, на котором нет скайрима. Я не смогу проверить даже то, компилируется ли скрипт, не говоря уже о его работоспособности.
Изменение репутации для пользователя Dirzi
DirziOffline
Сообщение №2694
написано: 13 сентября 2018, 07:49
| Отредактировано: Dirzi - 13 сентября 2018, 08:02
Могу даже попробовать, но проблема в том, что я сейчас торчу в деревне с ноутбуком...
Сочувствую вашему положение и благодарна вам за предложение. Но сперва попробую сама - и, как я писала выше, в первую очередь именно вариант с измененной копией скрипта. Каждый раз помогать вы вряд ли сможете (даже если и захотите), а учить Papyrus все равно придется... Вот если не справлюсь - обращусь с челобитной. В любом случае, большое вам спасибо за ответ! Да примет вас городская жизнь в свои достойные объятия;)
"Не сломано - не чини!"
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №2695
написано: 13 сентября 2018, 09:00
| Отредактировано: Dsion - 13 сентября 2018, 09:05
И я так понимаю, создавать и вставлять надо, к примеру, не Frostbite, а TrapFrostbite01, TrapFrostbite02... и так далее, до TrapFrostbite06?
Я даже не могу проверить, чем заполнены sLvlFlames1 итп. в ванильных ловушках. Подозреваю, что да, там разные spell разной мощности и, ясное дело, с разным названием. Но, теоретически, можно заполнить одинаковым любым spell. Если делать по-первому варианту, то: 1. Находим ванильную ловушку с этим скриптом. 2. Создаем её дубликат. 3. На скрипте дубликата очищаем 6 проперти типа sLvlFlamesX, заполненные какими-то заклинанием, и заполняем их одним своим. 4. Устанавливаем дубликат на пути какого-нибудь мирного путешествинника где-то и заходим в него. А если создавать свой скрипт и учить папирус, то TrapFlamethrower - не лучший референс... На мой взгляд, он безосновательно запутан и усложнен. Если тебе нужно только одно заклинание одного уровня, то скрипт получится раз в 6 короче. Ну давай, удачки.
Изменение репутации для пользователя Dirzi
DirziOffline
Сообщение №2696
написано: 13 сентября 2018, 09:41
| Отредактировано: Dirzi - 13 сентября 2018, 09:43
Если тебе нужно только одно заклинание одного уровня, то скрипт получится раз в 6 короче.
Возможно. Даже, я бы сказала - скорее всего, вы правы. Но редактировать готовый скрипт (при условии, что писать свои скрипты не умеешь, но в принципе понимаешь что такое язык программирования) чаще куда быстрее. Доводить свое жилище до ума, оптимизировать все до блеска и плеска буду позже; прежде нужно в принципе определить доступные возможности - ведь они влияют на функциональные объекты в interior, а через них и на саму архитектуру помещения
Еще раз мои вам благодарности. К сожалению, повышать репутацию можно лишь раз в сутки:(
Достойная трата времени... Я где-то месяц назад начал учиться рисовать мангу и постоянно подглядываю в Blender'e, как идут линии и ложатся тени. Моделировать тоже учился, но дальше уровня "начинающего" так и не продвинулся. Ладненько, удачи.
Если редактировать скрипт, то можно было бы убрать флаг "hidden" с проперти magicWeapon, заполнить её нужным заклинанием и выпилить строчку "magicWeapon = lvlWeapon" из конца функции ResolveLeveledWeapon(). Но это минимум. А вообще, там 5/6 кода можно выпилить.
1. ... Заменить одно из заклинаний с скрипте на своё (для одной конкретной ловушки или для нового типа ловушек). Например, выбираем "2 = flames". И вставляем своё заклинание в проперти sLvlFlames1, sLvlFlames2, ..., sLvlFlames6. В иделе, должно быть шесть разных заклинаний разной силы. Но можно заполнить и одинаковым
Для кого я вообще эту хрень писал?( А дальше я еще писал, что вариант это не изящный и лучше сделать свой скрипт...
Изменение репутации для пользователя Dirzi
DirziOffline
Сообщение №2699
написано: 13 сентября 2018, 14:32
| Отредактировано: Dirzi - 13 сентября 2018, 14:40
...поняла как "заменить непосредственно в тексте скрипта". Возможно, моя неопытность в терминологии скриптинга/моддинга и не извиняет меня в достаточной степени, но вы, мягко говоря, горячитесь избыточно. Если вас так волнует вопрос приоритета решения - я удалю свой предыдущий комментарий.
Пока читал эту тему, заметил несколько сообщений насчёт кракозябр при вызове GetName() из SKSE Модеры, может стоит добавить в шапку темы, что нужен SKSE Russian Fix? (Кстати, что-то я его не нашел на ModGames.net)
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)