Перейти к содержимому


Фотография

Папирус и лимит призванных существ


  • Авторизуйтесь для ответа в теме

#1 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Подскажите, пожалуйста, как в папирусе выглядит функция или команда, которая повышает лимит призванных существ?
В перках есть строчка "modify commanded actor limit", но доступные на выбор функции не дают достаточной гибкости. Как это вообще можно с помощью скрипта реализовать?




  • Авторизуйтесь для ответа в теме
Сообщений в теме: 17

#2 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Для смены этого значения вам нужно поменять соотв функцию в Gameplay -> GameSetting. Это у нас должно быть iMaxSummonedCreatures (по умолчанию 1)

Для смены через скрипт нужно будет использовать вот эту функцию. т.е. Game.SetGameSettingInt("iMaxSummonedCreatures", 1)

Учтите, функция добавлена SKSE.

Численность компаньонов или петов, если что, диктуется через скрипт управляющий системой компаньонов.
 



#3 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Для смены этого значения вам нужно поменять соотв функцию в Gameplay -> GameSetting. Это у нас должно быть iMaxSummonedCreatures (по умолчанию 1)

Для смены через скрипт нужно будет использовать вот эту функцию. т.е. Game.SetGameSettingInt("iMaxSummonedCreatures", 1)

Учтите, функция добавлена SKSE.

Численность компаньонов или петов, если что, диктуется через скрипт управляющий системой компаньонов.
 

Спасибо большое за быстрый ответ.

Без сксе, я так понимаю, не обойтись? В смысле, должно же где-то храниться это значение в любом случае. Или оно просто скрыто/недоступно в creation kit по дефолту?



#4 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Спасибо большое за быстрый ответ.

Без сксе, я так понимаю, не обойтись? В смысле, должно же где-то храниться это значение в любом случае. Или оно просто скрыто/недоступно в creation kit по дефолту?

Через просто CK его можно изменить. На верхней панели Gameplay -> Game Setting


  • Divico это нравится

#5 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Через просто CK его можно изменить. На верхней панели Gameplay -> Game Setting

А в скрипте манипулировать этим значением без SKSE никак не удастся? Я понимаю, что если бы была возможность, то не требовался бы SKSE, но может всё же есть какие-то танцы с бубнами.

Интересуюсь потому, что в дальнейшем хотелось бы и на SE мод перенести, а там SKSE нету и точно неизвестно когда появится



#6 Ссылка на это сообщение Karandra

Karandra
  • Знаменитый оратор



  • 3 685 сообщений
  •    

Отправлено

Интересуюсь потому, что в дальнейшем хотелось бы и на SE мод перенести, а там SKSE нету и точно неизвестно когда появится

Они обещают выпустить бету в середине марта.
https://youtu.be/J3b9pcgzZSk


pre_1454504183__logo.png Kortex Mod Manager: Discord | GitHub | Web-site

#7 Ссылка на это сообщение zilav

zilav
  • Профи
  • 300 сообщений
  •  

Отправлено

Сделайте свой перк с несколькими точками входа для разного кол-ва существ, каждая из которых будет уникально проверять условие, например глобальную переменную. Добавьте перк игроку player.addperk() и меняйте эту переменную в скрипте. Не надо никакого SKSE.



#8 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Сделайте свой перк с несколькими точками входа для разного кол-ва существ, каждая из которых будет уникально проверять условие, например глобальную переменную. Добавьте перк игроку player.addperk() и меняйте эту переменную в скрипте. Не надо никакого SKSE.

Дело не в самом перке, а в лимите. Я поставил на перк определенный лимит, который касается одних существ, а другие при превышении своего, другого лимита ломают сразу всех первых. Т.е. существа не заменяют друг друга по одному, а ломают сразу всех призванных, если группы существ привязаны к разным перкам.

Я вот и думал это как-то скриптами решить, а для этого нужно знать функции и т.п.



#9 Ссылка на это сообщение zilav

zilav
  • Профи
  • 300 сообщений
  •  

Отправлено

Меняйте лимит для всех существ в перке.



#10 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Меняйте лимит для всех существ в перке.

Но ведь тогда и дефолтных суммонов можно будет призвать много, а это портит весь геймплей мода.

Я думал так сделать, но только при этом написать скрипт, который при вызове существа будет проверять наложен ли маг.эффект с ключевыми словами дефолтных суммонов. Если да, то завершать данный эффект и накладывать новый. Вот только не до конца понимаю в какой ивент/ивенты этот код писать, что бы скрипт можно было прицепить на перк, а не на каждый эффект призыва и оживления.



#11 Ссылка на это сообщение zilav

zilav
  • Профи
  • 300 сообщений
  •  

Отправлено

Но ведь тогда и дефолтных суммонов можно будет призвать много

Все зависит от условий Conditions, которые вы пропишите у точек входа в перке.



#12 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Все зависит от условий Conditions, которые вы пропишите у точек входа в перке.

В общем, пробовал разные комбинации условий и модификаторов увеличения лимита и пришел к выводу, что работает эта штука очень странно. Если поднять лимит только одним существам, то другие при превышении своего лимита уничтожают сразу всех призванных из той группы, как я и говорил выше. НО! Если использовать модификатор Add Value и повысить лимит двум группам на любое одинаковое количество, именно на одинаковое, то все работает корректно. Другими словами так же, если бы я вместо двух "Add Value +5.00" написал одно, но сразу ко всем, ну или "Set Value 6.00". Не представляю с чем это связано.

Так же удивляет тот факт, что если одним задать +5, а другим +2, то те, что с +2 при превышении своего лимита уничтожают не всех из +5, а оставляют одного. Как я понял, учитывается еще разница между этими значениями зачем-то, ведь если разница меньше, то умирает меньше существ. Если поставить +4 и +3, то из +4 умирает уже только двое. И еще непонятно, почему всей призванной пачкой (ну или по несколько) страдают именно из той группы, в которой лимит больше.

 

Думал, как вы советовали, использовать глобальную переменную. Хотел повесить счетчик на каждый дефолтный маг.эффект оживления или призыва, который будет добавлять +1, если эффект сработал и просто указать в условиях наложения эффекта эту переменную. Мол, если больше единицы, то не срабатывает. Ну и учесть перк "Парные души". Но потом подумал, что для каждого существа это будет весьма долго, при этом я не знаю всех дефолтных заклинаний, а на все подряд вешать боюсь, вдруг поломает что-то или НПС будут криво это использовать.

 

Как можно выйти из этой ситуации? Что бы одни существа призывались Х раз, а другие Y без таких последствий. Несколько дней пытался что-то придумать, но либо функции нужной не находил, либо фантазии не хватало 


Сообщение отредактировал Divico: 16 января 2017 - 18:04


#13 Ссылка на это сообщение zilav

zilav
  • Профи
  • 300 сообщений
  •  

Отправлено

Ну если уверены, что с условиями в перке вы точно все делали правильно и оно не получается из-за ограничений движка игры, тогда просто повышайте лимит перком без условий до 100 например. А проверки делайте непосредственно в момент каста заклинаний призыва с анализом что призывается, и сколько оного уже призвано.

Попробуйте найти и покопаться в существующих подобных модах если найдете.



#14 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Ну если уверены, что с условиями в перке вы точно все делали правильно и оно не получается из-за ограничений движка игры, тогда просто повышайте лимит перком без условий до 100 например. А проверки делайте непосредственно в момент каста заклинаний призыва с анализом что призывается, и сколько оного уже призвано.

Попробуйте найти и покопаться в существующих подобных модах если найдете.

Не подскажите, можно ли обойтись одним скриптом или надо на каждое существо вешать?



#15 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

Не подскажите, можно ли обойтись одним скриптом или надо на каждое существо вешать?


Одним скриптом. Вешать надо на маг. эффект (у спелла). И проверять глобальную переменную ивентом OnEffectStart()

#16 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

Одним скриптом. Вешать надо на маг. эффект (у спелла). И проверять глобальную переменную ивентом OnEffectStart()

Это я понимаю. Я имею ввиду можно ли обойтись одним-двумя скриптами в целом или же необходимо вешать скрипт на каждый маг.эффект для каждого суммона?

Просто призыв относится и к способностям, не только к заклинаниям. Придется искать список всех заклинаний и способностей призыва, вешать скрипты на каждый, выставлять параметры. Боюсь напутать, задеть лишнего или наоборот не дописать что-то, потом среди всего этого искать ошибки.

Если это единственный способ, то вопросов нет, но меня интересует, можно ли откуда-то в одном месте все это контролировать? Например, прицепить скрипт на специально созданный маг.эффект, на котором будет висеть скрипт.


Сообщение отредактировал Divico: 17 января 2017 - 15:06


#17 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

 

если честно, я мало с магией работал в СК. Но насколько помню, там нет какого-то единого места, которое можно поменять и все будет как ты задумал. Нужно для каждого маг эффекта скрипт менять.

 

п.с. хотя, если там суммон происходит не по маг эффекту, а в результате самого explosion (что сейчас мне кажется наиболее вероятным), то я не знаю. Тогда надо игровую переменную менять через сксе. Навскидку приходит такое решение: создать квест, который запустится с загрузкой игры при подключении мода (Start Game Enabled) и сменит значение глобальной переменной iMaxSummonedCreatures на желаемое и завершится.



#18 Ссылка на это сообщение Divico

Divico
  • Новенький
  • 22 сообщений

Отправлено

если честно, я мало с магией работал в СК. Но насколько помню, там нет какого-то единого места, которое можно поменять и все будет как ты задумал. Нужно для каждого маг эффекта скрипт менять.

 

п.с. хотя, если там суммон происходит не по маг эффекту, а в результате самого explosion (что сейчас мне кажется наиболее вероятным), то я не знаю. Тогда надо игровую переменную менять через сксе. Навскидку приходит такое решение: создать квест, который запустится с загрузкой игры при подключении мода (Start Game Enabled) и сменит значение глобальной переменной iMaxSummonedCreatures на желаемое и завершится.

Эх. В общем, как всегда. Проблема появилась в самом неожиданном месте и оказалась самым трудным, из чего состоит мод)

 

Спасибо за помощь, буду пробовать






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых