качестве условия задавать IsWeaponSkillType либо IsWeaponAnimType - не помогает.
Как вариант - квестовый скрипт, который раз в 5-10 секунд проверяет плеера насчёт GetWeaponAnimType и если аним тайп подходящий, меняет где-нибудь какую-нибудь переменную, которая и служит настоящим условием перка или абилки. А если скрипт видит, что аним тайп не тот, он меняет переменную обратно. Чтоб не нагружать игру, Processing Delay поставить помедленнее - ну задержится смена критического шанса на 10 секунд, не критично. Но вообще странно, что просто в условии не работает. Может, оно Run on не на том, на ком надо?
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №1174
| Тема: Скрипты
написано: 13 Май 2020, 21:49
Там написано, что если кто-то хочет давать опыт не так и не за то, как и за что это предусмотрено игрой, то ему придётся считать этот опыт вручную. И если он хочет, чтобы опыт давался как в игре, то ему придётся вручную считать этот опыт тем же способом, каким его считает игра.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №1176
| Тема: Скрипты
написано: 14 Май 2020, 19:29
| Отредактировано: JupiterJour - 14 Май 2020, 19:33
Так что тогда не получается-то? Определить, что враг подвзорвался на ходячей мине или определить, насколько он был страшен? Первое я бы попробовал сделать через накладываемый от взрыва эффект с отмеченным No death dispell. Эффект обследует своего носителя на предмет живости и если тот не жив, то, наверное, он от того взрыва и помер - считаем опыт и выдаём. Оприходованных помечаем, например, каким-нибудь токеном, чтобы другие взрывы их не считали по второму разу. Второе можно прикинуть по доступным для скрипта признакам: GetLevel, GetIsCreatureType, GetBaseAV health, GetArmorRating и т.п.
Добавлено (14 Мая 2020, 19:42) --------------------------------------------- А. Ещё по первому пункту. Надо, наверное, постоянно обследовать местность и помечать вообще всех мёртвых, чтобы взрывы не считали опыт за убитых игроком собственноручно, за которых он уже получил штатным способом. Зависит от того, накладывается ли эффект от взрыва до смерти или после. Если до, то можно просто поставить эффекту условие GetDead и не накладывать его на мёртвых.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №1177
| Тема: Помощь по моддингу
написано: 7 Июнь 2020, 13:07
| Отредактировано: JupiterJour - 7 Июнь 2020, 13:08
открывается Messga Box (ShowMessage SchematicsWorkbenchFailureGenericArmorMsg ) который невозможно закрыть, нажимаєш на копку ок и он повторно открывается и так до бесконечности
Потому что кнопка OK - это тоже нулевая кнопка. И меню не в движке, можно с ним что угодно делать. И все с ним что угодно и делали, пока не появился CRAFT. Впрочем, для личного пользования и сейчас не возбраняется безо всяких крафтов влезть в скрипт и перекроить.
А можно ли как-то сделать время эффекта рандомным?Типа например от 2с. до 15с.
Навскидку три способа. 1. Сделать эффект. Сделать другой эффект, который на старте накладывал бы первый эффект, а снимал бы его не на финише, а по таймеру. А таймер был бы не с фиксированной длительностью, а зависящей от переменной. А переменная на старте случайным образом задавалась бы с помощью GetRandomPercent. Или не случайным, а зависящим от чего-нибудь (характеристик, навыка, типа противника, чего угодно). Или зависящим, но с долей случайности. 2. Сделать эффект, который на финише с некоторой не стопроцентной вероятностью (задаваемой, опять же, случайно или не случайно с помощью GetRandomPercent) накладывал бы сам себя снова. 3. Сделать несколько эффектов с разной длительностью, плюс ещё один эффект, который будет случайно или не случайно выбирать один из первых нескольких и накладывать выбранный.
В Мегатонне ошивается проповедник Кромвель. Так вот, когда он стоит и несёт свою пургу возле бомбы, он не реагирует на драку, если рядом дерутся нейтральные по отношению к нему актёры. Слушатели убегают, а он ноль внимания.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №1181
| Тема: Помощь по моддингу
написано: 27 Апрель 2021, 15:15
| Отредактировано: JupiterJour - 27 Апрель 2021, 15:37
Не может быть чтоб не робило. Берём нового NPC, ни фракций у него, ни скриптов, ничего, только пакет, аналогичный кромвелевскому: Travel, Near editor location, радиус 0, из флагов только Must complete (может, и не нужен). Ставим его посерёдке Мегатонны, заходим в игру, прыгаем в Мегатонну, включаем tgm и стучим кого-нибудь кулаком. Все стреляют, NPC стоит где поставили и спокойно глядит.
Добавлено (27 Апреля 2021, 15:36) --------------------------------------------- А он потому стоит и глядит, что снята галка с Observe combat behavior. Хм, надо же, неужели я ей раньше никогда не пользовался?
Не все Entry Point'ы перков основаны на базовых эффектах. Даже меньшинство. Подсветка вот не основана, используется только через перк, просто так в эффект её не впишешь. Ну и в Фоллаутах отломали много чего, что было в Обливионе.
Возможно, произошла путаница с тем, кто кого активирует. Надо КонтейнерРеф.Activate (по умолчанию тот, на ком работает скрипт, активирует контейнер) или КонтейнерРеф.Activate player (игрок активирует контейнер).
Второе, что может мешать - менюмод. Попробуй сделать так, чтобы скрипт срабатывал не в пип-бое, а после закрытия. Например, можно задать эффекту длительность, а контейнер активировать в блоке OnScriptEffectFinish.