В гранатах он нужного не увидит, в гранатном эффекте просто стоит условие GetIsCreatureType, что пациент является роботом. С силовой бронёй надо по-другому. Скрипт на эффект типа такого (требуется FOSE, тип скрипта - Effect):
ref Armor
Begin ScriptEffectStart
set Armor to GetEquippedObject 2
if IsPowerArmor Armor
DamageAV health 50
endif
End
Это в простейшем виде. По желанию можно проверить, надета ли силовая шапка, сделать расчёт урона похитрее или ещё что-нибудь придумать.
Скрипт - в базовый эффект. Включить галку Touch. На всякий случай ещё включить Self, Target, Hostile (чтоб пациент агрился) и Detrimental (чтоб вскрикивал). Базовый эффект - в эффект гранаты безо всяких условий. Эффект гранаты искать не в гранате: он прикреплён ко взрыву, который прикреплён к прожектилю, который прикреплён к гранате. Ну или сделать свой такой же эффект, если не требуется заменить эффекты всех гранат в игре.
Изменение репутации для пользователя AnotherJupiter
Можно, но только частично или для личного использования. Просто наделать условий GetEquipped и тупо перечислить в них все-все силовые брони из ванили, DLC и модов, с которыми играешь (там будет отдельный затык со ссылками на esp-файлы, если эти моды в виде esp, а не esm). В результате, понятное дело, работать будет только на перечисленными в условиях бронях, плюс мод будет требовать те DLC и моды, на которые он ссылается.
Изменение репутации для пользователя AnotherJupiter
AnotherJupiterOffline
Сообщение №3
| Тема: Скрипты
написано: 23 декабря 2023, 13:20
Уж сколько раз твердили миру: не объявляй переменных в результ-скрипте, не объявляй переменных в результ-скрипте... Тем более DoOnce. Эт'ж результ-скрипт, обернулся один раз - и всё. Конечно, она не работает. Есть же столько хороших мест, чтоб объявить переменные: квесты, реф-копии, раздел глобальных переменных (глобально для DoOnce, конечно, жирно). Объявил где следует - и обращайся к ней из любого другого места сколько влезет.
Изменение репутации для пользователя AnotherJupiter
Ну, вообще иногда такие переменные работают. А иногда они не работают. Там какая-то сложная фигня, связанная с тем, что неименованные скрипты в игре на самом деле как-то привязаны к именованным, и могут их поломать и сами поломаться. Это надо в сообщениях Ипатова искать, он, кажется, объяснял. А я потом, как щас вспомнил, пытался коряво в меру разумения пересказать в "Картотеке".
А так же, скажите пожалуйста, как сделать, что бы жффект применялся только когда герой бер>т в руки конкретный ствол...
через гетисайди пробовал, и не работает, но может я не так сделал
Имеется ввиду придать оружейный эффект конкретному экземпляру ствола, в смысле конкретной реф-копии? Никак. Только сделать другой базовый объект для уника, который был бы во всём такой же, как массовое оружие, но только с эффектом. Поместить в игру одну единственную копию этого объекта (или всучить её игроку каким-то иным способом). Будет как бы улучшенный экземпляр обычного оружия, но с точки зрения игровой механики это другое оружие.
Изменение репутации для пользователя AnotherJupiter
Добавлю, что если под "конкретной единицей" понимается конкретный экземпляр из многих, то надо его подменить экземпляром другого объекта с другим BaseID.
Вроде, актор-эффекты вида Ability, Addiction и Desease постоянны. https://geckwiki.com/index.php?title=Actor_Effect
Цитата igelschmigel
каждую секунду прирастает на 1. А у меня, кажется, прирастает на 0.01
Дык всё верно, так и должно быть. Функция выдаёт время, прошедшее с предыдущего её, этой функции, срабатывания. За каждый оборот скрипта переменная прирастает на то время, которое прошло с момента прошлого срабатывания функции, то есть за сколько времени этот оборот случился. Объектные скрипты работают раз за фрейм (кадр), десятки раз в секунду, как раз и выходят сотые доли. https://geckwiki.com/index.php?title=GetSecondsPassed
Изменение репутации для пользователя AnotherJupiter
написал скрипт, который запирает/отпирает дверь в его хижину, в зависимости от времени суток.
На всякий случай напоминаю о галочках отпирания и запирания дверей в настройках AI пакета.
Цитата YikxX
смущает затененная галка Persistent Reference он должна быть активной.
Неписи-люди не могут быть непостоянными ссылками, поэтому галка затенённая, неснимаемая. У кричеров галка активная, можно ставить и снимать.
Цитата JIuKBuDaToR
Почему появляется стандартная дефолтная фраза "Мне пора идти" и как ее убрать?
Дефолтные фразы находятся в дефолтных или точнее, Generic, квестах, имеющих условием наличие у актёра дефолтного голоса. Актёры с другими типами голоса не будут пользоваться дефолтными квестами и говорить дефолтные фразы дефолтными голосами. Но, емнип, просто убрать Voice type нельзя. Какой-нибудь, хоть пустой, Voice type должен быть создан и назначен, а то будут какие-то проблемы... быстрое проскакивание текста, вроде бы.
Ну, можно и через Choices, если не хочется совсем расставаться с дефолтными фразами типа "Ага, пока." и "Это не просто так заперто!"
Изменение репутации для пользователя AnotherJupiter
AnotherJupiterOffline
Сообщение №11
| Тема: Помощь по G.E.C.K.
написано: 16 марта 2025, 19:29
| Отредактировано: AnotherJupiter - 16 марта 2025, 19:30
с этой галкой нпс не может запереть дверь в свою хижину из своей хижины
Как минимум в Мегатонне все неписи свои двери так и запирают, в том числе те, которые вообще не выходят из дому. Мойра Браун, например. Ну, скрипт так скрипт, как хочешь, я просто напомнил, а то про эти галки часто забывают.
Цитата JIuKBuDaToR
у меня было указано только две реплики, мои которые я сделал
А в Generic квесте - другие. Раз появляются реплики и оттуда, и оттуда, значит, оба квеста подходят по условиям. Я про условия квеста. Которые на первой вкладке квеста. Но вроде да, для специального редко используемого прощания подходит простой топик с галкой Goodbye через Choices. Можно и обычное, многоразовое прощание организовать через Choices, но тогда, если правильно помню, придётся эти Choices совать во все ветки диалога, ни разу не возвращаясь в корень, в котором появится Generic-прощание, что весьма неудобно в мало-мальски длинном разговоре.
Вроде, для всех прощаний обычно все используют топик GOODBYE просто с разными дополнительными условиями в ответах.
Цитата JIuKBuDaToR
Некорретно у меня работает скрипт.
Это всё в гейммоде делается, а не в менюмоде.
Изменение репутации для пользователя AnotherJupiter
А насчет уникального голоса - то есть, можно дать НПЦ голос Аматы, например (у нее в войс-типе не стоит галка "разрешен в диалогах")
Не помню, как эта галка работает. Обычно я просто создавал новый Voice type, назначал его NPC - и тот сразу отвязывался от всех имеющихся Generic диалогов. Ну, писал ему новые неозвученные привет-пока в своём квесте. Если прорабатывать хорошенько, то надо и прочие стандартные топики прописать: бой, кражу и тому подобное на других вкладках квеста. Вся озвучка, естественно, пропадает, зато можно строить диалоги как обычно, используя Choices только где они действительно нужны.
Изменение репутации для пользователя AnotherJupiter
Вроде, для всех прощаний обычно все используют топик GOODBYE просто с разными дополнительными условиями в ответах.
С другой стороны, вроде бы, тогда ответы на "Мне пора" будут рандомно выхватываться из разных подходящих по условиям квестов с поправкой на приоритет (или без поправки? всё забыл нафиг ), так что иногда NPC будет говорить стандартную фразу, а иногда новую.
Изменение репутации для пользователя AnotherJupiter
AnotherJupiterOffline
Сообщение №15
| Тема: Помощь по G.E.C.K.
написано: 5 апреля 2025, 16:00
| Отредактировано: AnotherJupiter - 5 апреля 2025, 16:19
Емнип, даже просто Disable актёра нарушает нормальный респаун, то есть ты его через 3 дня обратно Enable, а он всё ещё тот же и мёртвый, если к моменту исчезновения был мёртв, кажется, так. MarkForDelete, естественно, стирает реф-копию уровневого рейдера напрочь и там просто нечему становится возрождаться.
Не совсем понятно, что за исчезновение имеется ввиду. В смысле обратимое, неокончательное исчезновение, но с респауном? Ну, можно попробовать задвинуть подальше (но в том месте должен быть разрешён респаун) с помощью MoveTo или MoveToCell. Предварительно отключить мозги SetActorsAI, SetRestrained или SetUnconscious, чтобы не прибежал назад своим ходом, то есть чтобы пакет поведения не привёл его на нормальное место. Правда, требуются исследования, как взаимодействует респаун с тремя последними функциями, не пробудится ли возродившийся актёр к активной жизни.
Изменение репутации для пользователя AnotherJupiter
AnotherJupiterOffline
Сообщение №16
| Тема: Помощь по G.E.C.K.
написано: 6 апреля 2025, 01:29
| Отредактировано: AnotherJupiter - 6 апреля 2025, 01:36
Не факт, что актёр возродится именно там, куда его перенесли. Ведь возрождаются же на прежнем месте актёры, убежавшие куда-то своими ногами. Не факт даже, что к нему будет применяться Encounter zone того места, куда он перемещён. Может, и разрешённый респаун в том месте не обязателен.
По поводу визуального исчезновения также можно применить SetActorAlpha 0. Но это вот именно что только визуальное. Наощупь актёр будет доступен: можно поговорить, ударить, обокрасть и т.п. Так что всё равно потом переместить куда-то и там либо грохнуть насмерть, либо отключить мозги. Либо поместить в место без дверей, но актёры, когда им куда-то надо, бывает, пролазят там, где вроде бы не должны. По крайней мере через отсутствующий навмеш проходят запросто, насчёт отсутствующих дверей не знаю. Кстати, актёр под действием SetActorsAI 0 неощутим наощупь (но глазами виден) и, кажется, с радара его метка тоже исчезает, но насчёт метки не уверен.
Загвоздка ещё в том, что не все уровневые актёры являются постоянными ссылками, поэтому как-то скриптово ими манипулировать затруднительно, только через скрипты эффектов, которые ещё фиг знает как сработают, если игрок далеко, так как все уровневые актёры ещё и No low level processing. Либо записывать его в какую-то реф-ссылку, которую хранить в другом месте и оттуда отслеживать и что-то с ней делать. Громоздко, ненадёжно. Возможно, надо не мудрить, а просто перемещать актёра очень далеко, но с доступом к миру (то есть для всяких отдельных миров типа Пойнт Лукаутов нужны свои "очень далеко"), и пусть плинтухает оттуда пешком. Не дойдёт, с полпути отреспаунится на старом месте - хорошо. Не отреспаунится - и фиг с ним, придёт потом своим ходом.
Мерцание, наверное, надо искать в шейдерах. Это тоже такие объекты, есть раздел в ГЭККе. Ну и в любом случае можно просто поглядеть, как сделано это мерцание в Анкоридже, или где оно там...
Изменение репутации для пользователя AnotherJupiter
Да кто ж его знает, останется он или нет. Поди разбери, относится ли эта альфа к свойствам "конкретного воплощения" как инвентарь или к свойствам "всей ссылки" как состояние Enable/Disable... Пока не попробуешь не узнаешь.