Divico Опубликовано 12 января, 2017 Опубликовано 12 января, 2017 Подскажите, пожалуйста, как в папирусе выглядит функция или команда, которая повышает лимит призванных существ? В перках есть строчка "modify commanded actor limit", но доступные на выбор функции не дают достаточной гибкости. Как это вообще можно с помощью скрипта реализовать?
Potatoider Опубликовано 12 января, 2017 Опубликовано 12 января, 2017 Для смены этого значения вам нужно поменять соотв функцию в Gameplay -> GameSetting. Это у нас должно быть iMaxSummonedCreatures (по умолчанию 1) Для смены через скрипт нужно будет использовать вот эту функцию. т.е. Game.SetGameSettingInt("iMaxSummonedCreatures", 1) Учтите, функция добавлена SKSE. Численность компаньонов или петов, если что, диктуется через скрипт управляющий системой компаньонов. 1
Divico Опубликовано 12 января, 2017 Автор Опубликовано 12 января, 2017 12.01.2017 14:41:51, Dimonoider сказал(-а): Для смены этого значения вам нужно поменять соотв функцию в Gameplay -> GameSetting. Это у нас должно быть iMaxSummonedCreatures (по умолчанию 1) Для смены через скрипт нужно будет использовать вот эту функцию. т.е. Game.SetGameSettingInt("iMaxSummonedCreatures", 1) Учтите, функция добавлена SKSE. Численность компаньонов или петов, если что, диктуется через скрипт управляющий системой компаньонов. Спасибо большое за быстрый ответ. Без сксе, я так понимаю, не обойтись? В смысле, должно же где-то храниться это значение в любом случае. Или оно просто скрыто/недоступно в creation kit по дефолту?
Potatoider Опубликовано 12 января, 2017 Опубликовано 12 января, 2017 12.01.2017 15:02:11, Divico сказал(-а): Спасибо большое за быстрый ответ. Без сксе, я так понимаю, не обойтись? В смысле, должно же где-то храниться это значение в любом случае. Или оно просто скрыто/недоступно в creation kit по дефолту? Через просто CK его можно изменить. На верхней панели Gameplay -> Game Setting 1
Divico Опубликовано 12 января, 2017 Автор Опубликовано 12 января, 2017 12.01.2017 15:15:55, Dimonoider сказал(-а): Через просто CK его можно изменить. На верхней панели Gameplay -> Game Setting А в скрипте манипулировать этим значением без SKSE никак не удастся? Я понимаю, что если бы была возможность, то не требовался бы SKSE, но может всё же есть какие-то танцы с бубнами. Интересуюсь потому, что в дальнейшем хотелось бы и на SE мод перенести, а там SKSE нету и точно неизвестно когда появится
Karandra Опубликовано 12 января, 2017 Опубликовано 12 января, 2017 12.01.2017 15:48:59, Divico сказал(-а): Интересуюсь потому, что в дальнейшем хотелось бы и на SE мод перенести, а там SKSE нету и точно неизвестно когда появится Они обещают выпустить бету в середине марта. 1 Kortex Mod Manager: Discord | GitHub | Web-site
zilav Опубликовано 13 января, 2017 Опубликовано 13 января, 2017 Сделайте свой перк с несколькими точками входа для разного кол-ва существ, каждая из которых будет уникально проверять условие, например глобальную переменную. Добавьте перк игроку player.addperk() и меняйте эту переменную в скрипте. Не надо никакого SKSE. 2
Divico Опубликовано 13 января, 2017 Автор Опубликовано 13 января, 2017 13.01.2017 07:28:07, zilav сказал(-а): Сделайте свой перк с несколькими точками входа для разного кол-ва существ, каждая из которых будет уникально проверять условие, например глобальную переменную. Добавьте перк игроку player.addperk() и меняйте эту переменную в скрипте. Не надо никакого SKSE. Дело не в самом перке, а в лимите. Я поставил на перк определенный лимит, который касается одних существ, а другие при превышении своего, другого лимита ломают сразу всех первых. Т.е. существа не заменяют друг друга по одному, а ломают сразу всех призванных, если группы существ привязаны к разным перкам. Я вот и думал это как-то скриптами решить, а для этого нужно знать функции и т.п.
zilav Опубликовано 13 января, 2017 Опубликовано 13 января, 2017 Меняйте лимит для всех существ в перке. 1
Divico Опубликовано 13 января, 2017 Автор Опубликовано 13 января, 2017 13.01.2017 13:32:50, zilav сказал(-а): Меняйте лимит для всех существ в перке. Но ведь тогда и дефолтных суммонов можно будет призвать много, а это портит весь геймплей мода. Я думал так сделать, но только при этом написать скрипт, который при вызове существа будет проверять наложен ли маг.эффект с ключевыми словами дефолтных суммонов. Если да, то завершать данный эффект и накладывать новый. Вот только не до конца понимаю в какой ивент/ивенты этот код писать, что бы скрипт можно было прицепить на перк, а не на каждый эффект призыва и оживления.
zilav Опубликовано 14 января, 2017 Опубликовано 14 января, 2017 13.01.2017 15:03:07, Divico сказал(-а): Но ведь тогда и дефолтных суммонов можно будет призвать много Все зависит от условий Conditions, которые вы пропишите у точек входа в перке.
Divico Опубликовано 16 января, 2017 Автор Опубликовано 16 января, 2017 (изменено) 14.01.2017 07:34:59, zilav сказал(-а): Все зависит от условий Conditions, которые вы пропишите у точек входа в перке. В общем, пробовал разные комбинации условий и модификаторов увеличения лимита и пришел к выводу, что работает эта штука очень странно. Если поднять лимит только одним существам, то другие при превышении своего лимита уничтожают сразу всех призванных из той группы, как я и говорил выше. НО! Если использовать модификатор Add Value и повысить лимит двум группам на любое одинаковое количество, именно на одинаковое, то все работает корректно. Другими словами так же, если бы я вместо двух "Add Value +5.00" написал одно, но сразу ко всем, ну или "Set Value 6.00". Не представляю с чем это связано. Так же удивляет тот факт, что если одним задать +5, а другим +2, то те, что с +2 при превышении своего лимита уничтожают не всех из +5, а оставляют одного. Как я понял, учитывается еще разница между этими значениями зачем-то, ведь если разница меньше, то умирает меньше существ. Если поставить +4 и +3, то из +4 умирает уже только двое. И еще непонятно, почему всей призванной пачкой (ну или по несколько) страдают именно из той группы, в которой лимит больше. Думал, как вы советовали, использовать глобальную переменную. Хотел повесить счетчик на каждый дефолтный маг.эффект оживления или призыва, который будет добавлять +1, если эффект сработал и просто указать в условиях наложения эффекта эту переменную. Мол, если больше единицы, то не срабатывает. Ну и учесть перк "Парные души". Но потом подумал, что для каждого существа это будет весьма долго, при этом я не знаю всех дефолтных заклинаний, а на все подряд вешать боюсь, вдруг поломает что-то или НПС будут криво это использовать. Как можно выйти из этой ситуации? Что бы одни существа призывались Х раз, а другие Y без таких последствий. Несколько дней пытался что-то придумать, но либо функции нужной не находил, либо фантазии не хватало Изменено 16 января, 2017 пользователем Divico
zilav Опубликовано 16 января, 2017 Опубликовано 16 января, 2017 Ну если уверены, что с условиями в перке вы точно все делали правильно и оно не получается из-за ограничений движка игры, тогда просто повышайте лимит перком без условий до 100 например. А проверки делайте непосредственно в момент каста заклинаний призыва с анализом что призывается, и сколько оного уже призвано. Попробуйте найти и покопаться в существующих подобных модах если найдете. 1
Divico Опубликовано 16 января, 2017 Автор Опубликовано 16 января, 2017 16.01.2017 18:30:47, zilav сказал(-а): Ну если уверены, что с условиями в перке вы точно все делали правильно и оно не получается из-за ограничений движка игры, тогда просто повышайте лимит перком без условий до 100 например. А проверки делайте непосредственно в момент каста заклинаний призыва с анализом что призывается, и сколько оного уже призвано. Попробуйте найти и покопаться в существующих подобных модах если найдете. Не подскажите, можно ли обойтись одним скриптом или надо на каждое существо вешать?
werr Опубликовано 17 января, 2017 Опубликовано 17 января, 2017 16.01.2017 19:59:18, Divico сказал(-а):Не подскажите, можно ли обойтись одним скриптом или надо на каждое существо вешать? Одним скриптом. Вешать надо на маг. эффект (у спелла). И проверять глобальную переменную ивентом OnEffectStart() 2 A Random Dude's Story
Divico Опубликовано 17 января, 2017 Автор Опубликовано 17 января, 2017 (изменено) 17.01.2017 00:23:53, werr сказал(-а): Одним скриптом. Вешать надо на маг. эффект (у спелла). И проверять глобальную переменную ивентом OnEffectStart() Это я понимаю. Я имею ввиду можно ли обойтись одним-двумя скриптами в целом или же необходимо вешать скрипт на каждый маг.эффект для каждого суммона? Просто призыв относится и к способностям, не только к заклинаниям. Придется искать список всех заклинаний и способностей призыва, вешать скрипты на каждый, выставлять параметры. Боюсь напутать, задеть лишнего или наоборот не дописать что-то, потом среди всего этого искать ошибки. Если это единственный способ, то вопросов нет, но меня интересует, можно ли откуда-то в одном месте все это контролировать? Например, прицепить скрипт на специально созданный маг.эффект, на котором будет висеть скрипт. Изменено 17 января, 2017 пользователем Divico
werr Опубликовано 17 января, 2017 Опубликовано 17 января, 2017 17.01.2017 12:39:55, Divico сказал(-а): если честно, я мало с магией работал в СК. Но насколько помню, там нет какого-то единого места, которое можно поменять и все будет как ты задумал. Нужно для каждого маг эффекта скрипт менять. п.с. хотя, если там суммон происходит не по маг эффекту, а в результате самого explosion (что сейчас мне кажется наиболее вероятным), то я не знаю. Тогда надо игровую переменную менять через сксе. Навскидку приходит такое решение: создать квест, который запустится с загрузкой игры при подключении мода (Start Game Enabled) и сменит значение глобальной переменной iMaxSummonedCreatures на желаемое и завершится. 1 A Random Dude's Story
Divico Опубликовано 17 января, 2017 Автор Опубликовано 17 января, 2017 17.01.2017 15:49:08, werr сказал(-а): если честно, я мало с магией работал в СК. Но насколько помню, там нет какого-то единого места, которое можно поменять и все будет как ты задумал. Нужно для каждого маг эффекта скрипт менять. п.с. хотя, если там суммон происходит не по маг эффекту, а в результате самого explosion (что сейчас мне кажется наиболее вероятным), то я не знаю. Тогда надо игровую переменную менять через сксе. Навскидку приходит такое решение: создать квест, который запустится с загрузкой игры при подключении мода (Start Game Enabled) и сменит значение глобальной переменной iMaxSummonedCreatures на желаемое и завершится. Эх. В общем, как всегда. Проблема появилась в самом неожиданном месте и оказалась самым трудным, из чего состоит мод) Спасибо за помощь, буду пробовать
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти