Такая проблема: нужно отловить скриптом момент, когда ГГ уходит в скрытность и когда выходит из скрытного режима. Нужно поймать именно событие. После долгих и тяжелых пыток из гугла удалось выдавить только это:
Scriptname myPlayerScript extendsReferenceAlias {Attached to players alias}
Event OnBeginSneak() debug.trace("omg im sneaking") EndEvent
EventOnEndSneak() debug.trace("lol im not sneaking") EndEvent
Чувак в теме пишет, что это работает, но у меня так нифига и не получилось.
События OnBeginSneak(), OnEndSneak() компилятор кушает, но они не активируются во время игры и гугл ничего не выдает по этим ивентам. В офф. вики по киту их тоже нет.
Типа пруф _https://forums.nexusmods.com/index.php?/topic/916761-hot-to-detect-in-a-script-if-player-is-succesfully-sneaking/
Есть ли вообще какой-то способ выловить момент (скриптом, перком, спеллом пофигу как), что ГГ перешел в режим скрытности?
ąnizórđą, ага а КУДА это воткнуть? Рит, мне нужно выловить событие перехода в режим скрытности, а не тот факт, что гг уже там или не там.
Ситуация: как только гг присел - что-то происходит. Как, где в каком ивенте в любой момент игрового времени проверить что гг присел? Именно для этого есть события по отношению к шмоту: Онэквип и Онунэквип, которые возникают в момент одевания и снятия. Мне нужны такие же события по снику.
Можно повесить очередной РегистрОнУпдейт с интервалом в 5 секунд, но такими фокусами двигло загнуть - раз плюнуть. Нужен маркер и тот факт, что его нет - идиотизм.
Взгляните по ссылке пруфу. Там понятнее изложено чего я добиваюсь. Только приведенные в коде ивенты не работают и нигде больше не упоминаются. Или я не понял как их корректно вызвать.
ąnizórđą, да я вот тоже всю вики облазил и не вижу за что можно на акторе уцепиться. Ивента по снику точно нет. Клавиши не лучший вариант ведь их можно перебиндить. Пробую чет через магэфыект или перк выдумань, но толку мало. Везде выходит вагон холостых вызовов.
Ребят, как к одному эспэшнику приделывают два БСА? А то есть мод, находящийся в переводе в нем есть один БСА и еще открытых файлов на 2 ГБ и установка через НММ занимает порядка 40 минут, долго ... а руками потом вычищать не вар...
Народ! А как респаун в ящике настроить? Ну не верю я, что просто надо пару галочек respawn поставить... Мне нужен классический респаун - обновилось содержимое пещер - обновилось содержание ящика
Ridart, поставить галочку респаун и сунуть в ящик содержимое. Строго говоря респаунится не ящик, а привязанный к нему лут(содержимое).Лучше всего левел лист. Галочка просто указывает системе генерации лута и событий, что данный контейнер в ней участвует или нет. Че тут странного?
m4mk203, а это мой следующий вопрос! Мне нужно разбросать по миру вещи... Купит у торговцев, найти в ящиках, снять как трофей с врагов... Просто разместить в мире и сунуть в карман торговцу мало! Для этого левел-листы надо задействовать? Как ими пользоваться?
Ridart, да, левел листы. При чем желательно не трогать ванильные, а создавать свои. Чуть позже попытаюсь в понятной форме расписать. Щаз времени вобрез.
m4mk203, а это не проблема! Я всегда создаю копию и не трогаю ваниль(я себя знаю - тронешь уже существующее - всё сломается)... Так что морально я готов замес со своими левел-листами начать
Все итемы в игре относительно уровня игрока можно разделить на два типа: статические и зависимые от уровня гг. Статические не меняются на протяжении всей игры, левельные зависят от того, на каком уровне гг их найдет.
Пример: куст и под ним шлем. Если вы положили под куст в ките конкретно кожанный шлем, то до конца игры там будет спавниться только он. Если вы положили под куст специальный dummy объект шлем (оранжевая схематическая моделька шлема), то в его свойствах вы можете задать, что на уровнях 1-5 там будет кожанный шлем, 6-15 - стальной, 15-25 пластинчатый и т.д. В зависимости от того, на каком уровне гг заглянет под куст такой шлем он и найдет.
Ровно та же система работает в отношении НПС. Есть НПС статичные по левелу, а есть левельные. Левельные в окне рендера видны как буква М разных цветов: зеленый- низколевельные, желтый -средний левел, красные - "боссы". В свойствах левельных НПС задается какого уровня там будет "хиляк", "средняк" или "босс".
А теперь самое вкусное: левеллисты. Спавнить вещи в игре нужно не только по одиночке, но и в виде содержимого контейнеров.
Пример: есть ящик с содержимым - броня, камень, слиток, оружие. Если вы просто положите эти предметы в инвентарь сундука в ките, то только эти конкретные предметы там будут респавниться до конца игры.
Если же вам нужно сделать так, чтобы броня, слиток, камень и оружие в сундуке ранжировались относительно уровня гг и имели еще и вероятность своего появления в сундуке - вам нужен некий dummy объект, в свойсвах которого вы пропишете сценарий для каждой вещи. Таким объектом для любого типа контейнеров является левел лист.
В инвентарь контейнера можно совать множество левел листов. Паралельно с левел листами в инвентаре могут лежать и конкретные объекты.
Относительно примера выше: в сундук можно добавить 4 левел листа - первый будет описывать броню, второй камень, третий слиток и тд.
У левел листа есть три основных паркаметра: уровень, вещь, вероятность.
Пример левел листа шлемов в сундуке. 1 - Кож. шлем 10 - железный 20 - пластинчатый 30 - двемерский
Это значит, что с 1 по 9 уровень гг будет находить в сундуке кож. шлем. С 10 по 19 железный ... С 30-го и ДО КОНЦА ИГРЫ двемерский. Если задать левеллисту вероятность, то дополнительно будет расчитываться не только уровень вещи но и вероятность ее появления при луте сундука.
Пока просмотрите пару сундуков торговцев и содержимое левеллистов в них. Попробуйте понять схему.
Позже продолжу.
UPD Продолжим
Спойлер
Вот собственно левел лист.
Список левел листа формируется путем ручного добавления в него объектов. В списке указан уровень появления зелья, само зелье. Qwner и Health игнорируем.
Над списком в окошке Chance указывается вероятность пустого списка предметов независимо от уровня ГГ. Если же справа вверху стоит галочка "Calculate from all levels <= PC ..." это значит, что вероятность будет рассчитываться по показателю уровня ГГ (уровень гг = 20 значит потолок вероятности 20%) Есть еще пара значений, но с ними сложнее. Оригинал описания:
Calculate from all levels <= PC's level: If checked, the level list will use any item at or below the player's level in the list. If not checked, it uses the closest item or items to the player's level, but not exceeding it.Calculate for each item in count: If this list is in another leveled list with a count greater than zero, this check box determines if each item in the count is the same, or is recalculated.Use All: Mutually exclusive with the previous two selections, Use All causes the list to always return all of its contents.Special Loot: Whether to select items from this list using the Special Loot formula.Chance None: The chance that the leveled list will not produce an item at all. This chance can be supplied either as a fixed percentage or as a value in a Global.
Так же можно заметить на картинке, что для уровня 1 строка повторяется 4 раза. Смысл в том, что таким образом увеличивают вероятность появления конкретного приедмета из списка относительно общей вероятности по списку. То есть: вероятность для списка 50%, а для отдельной позиции в этом списке 75%.
Так же особенностью уровневых списков является то, что в них можно включать другие уровневые списки. Пример:
Это уровневый список генерации зелий в сундуках драугров. Позициями этого списка являются левеллисты по разным типам зелий.
Зачем такое нужно: глобальный лист определяет какие КАТЕГОРИИ зелий и с какой вероятностью появятся в этом типе контейнеров. Вложенные левеллисты детализируют какие конкретные образчики зелий каждого класса тут появятся.
Таким образом вы с помощью левеллистов можете весьма разнообразить и отбалансировать генерацию лута в игре.
ВАЖНО:
Внизу окна редактирования левеллиста есть кнопка Preview Calculated Result и окошко Preview Level. Это очень важный момент. После того, как вы закончили формировать нужный список и условия вероятности вам захочется потестировать и проверить левел лист. Для этого не нужно ломиться в игру, генерить там респауны и проверять сундуки. Достаточно в форме редактирования указать интересующий уровень в поле Preview Level и давануть кнопку Preview Calculated Result.
Результатом будет окошко со списком, в котором вы увидите результат работы респавнера по этому левеллисту. Таким образом можно смоделировать какой лут будет порождать ваш левеллист в игре. Естественно список может быть и пустым. При вероятности меньше 100 это нормально Таким образом при помощи Preview Calculated Result вы можете максимально точно определить и подогнать настройки конкретного левеллиста под желаемый игровой результат без постоянной беготни в саму игру.
Собственно это необходимая и достаточная база по созданию левеллистов.
Как в рецепт ковки предмета ввести наличие книги? Привязать к перку получилось(только предмет почему то находится в разделе Разное...) Должно получится примерно так: есть книга в инвентаре - можно ковать предмет нет книги - не выкуешь, даже если есть всё необходимое