Под этим солнцем и небом мы тепло приветствуем Вас, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Бухта 2.0. Тёплая. Ламповая. Твоя.

Автор Тема: [Skyrim] TES Creation Kit  (Прочитано 277431 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн Аладор

  • *
  • Сообщений: 2891
  • Пол: Мужской
  • Странник между мирами
[Skyrim] TES Creation Kit
« Ответ #720 : 14 Августа 2013, 15:59 »
0
 РЕДМЕНЪ, Нужно поставить галочку в свойствах кинжала и записки напротив - don't havok settle. Если я правильно помню. Если окружишь коллизиями, то он наверняка будет весь "дерганный".
“Предупрежден, значит вооружен“
Никогда не кормите троллей, они не поддаются приручению, и от сытости лишь сильней дичают.
Награды Маяк - за неоценимую помощь в создании Бухты 2.0

Оффлайн Архангел

  • *
  • Сообщений: 442
  • Пол: Мужской
[Skyrim] TES Creation Kit
« Ответ #721 : 14 Августа 2013, 16:00 »
0
Нет, думаю его надо переделать в статичный предмет и прицепить к нему скрипт, если его нужно забрать с собой. Или заменить коллизию на другую более устойчивую, например от чашки.
Если честно, ничего из вышеперечисленного не пробовал . Ну для Облы наверно так  :-\
Кстати Nifscope для Ская есть ?

Сейчас играю в http://anvilbay.ru/
Награды Пшеничный сноп - за победу на конкурсе скриншотов "Мирный труд" Венок - победителю командного соревнования на Фестивале "Конец страды"

Оффлайн Аладор

  • *
  • Сообщений: 2891
  • Пол: Мужской
  • Странник между мирами
[Skyrim] TES Creation Kit
« Ответ #722 : 14 Августа 2013, 16:01 »
0
Кстати Nifscope для Ская есть ?
Последняя версия нифскопа работает с моделями и облы и ская.
“Предупрежден, значит вооружен“
Никогда не кормите троллей, они не поддаются приручению, и от сытости лишь сильней дичают.
Награды Маяк - за неоценимую помощь в создании Бухты 2.0

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #723 : 14 Августа 2013, 16:28 »
0
Аладор, спасибо, попробую.  А записку зачем трогать, она лежит спокойно, не шелохнется? Только кинжал падает.

Архангел, вот тут я ссылку на нифскоп давал только вчера.
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн Аладор

  • *
  • Сообщений: 2891
  • Пол: Мужской
  • Странник между мирами
[Skyrim] TES Creation Kit
« Ответ #724 : 14 Августа 2013, 16:31 »
0
А записку зачем трогать, она лежит спокойно, не шелохнется?

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

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #725 : 14 Августа 2013, 17:30 »
0
Хм. Прям мистика какая-то. С этой галочкой кинжал стоит ровно - но только когда приходишь мужским персонажем. А когда приходишь женским персонажем - кинжал всё равно падает. Сексизм.  ;D
Я уже раз 20 с разных сохранялок пробовал подойти, дважды предметы переставлял в СК. 
Если ещё за пару экспериментов не получится исправить, то и выброшу кинжал совсем, без него всё ровно. Ситуация не требует обязательного его присутствия.
 
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн IgorLutiy

  • *
  • Сообщений: 920
  • Пол: Мужской
  • Выбраковщик
    • Oblivion, Skyrim & Fallout3 Modding
[Skyrim] TES Creation Kit
« Ответ #726 : 14 Августа 2013, 17:41 »
0
РЕДМЕНЪ
Сделай кинжал статиком (активатором?).
Если нужно, чтобы персонаж его брал - сделай потом скриптом дисейбл кинжала-статика и добавление кинжала (другого экземпляра, как оружия) в инвентарь игрока.
Мир друзьям - смерть врагам!
Награды Золотая Палитра - художнику (ПП 2013 года) Плюшевый мишка - приз зрительских симпатий на Первом поэтическом конкурсе Бухты Синяя Роза - за победу на Первом поэтическом конкурсе Бухты

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #727 : 14 Августа 2013, 17:46 »
0
Это наверное поможет, спасибо, но у меня попросту времени нет на эксперименты; времени осталось до конца дня, а завтра уезжаю, а когда приеду, уже никому не надо будет  :)
Оставлю эксперименты на потом.
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн IgorLutiy

  • *
  • Сообщений: 920
  • Пол: Мужской
  • Выбраковщик
    • Oblivion, Skyrim & Fallout3 Modding
[Skyrim] TES Creation Kit
« Ответ #728 : 14 Августа 2013, 17:48 »
0
Это не эксперименты - это работает точно. Проверено в Обливионе еще года 4 назад, но уверен, в Скайриме все абсолютно идентично, кроме самого скрипта. Но если времени нет - хозяин-барин
Мир друзьям - смерть врагам!
Награды Золотая Палитра - художнику (ПП 2013 года) Плюшевый мишка - приз зрительских симпатий на Первом поэтическом конкурсе Бухты Синяя Роза - за победу на Первом поэтическом конкурсе Бухты

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #729 : 14 Августа 2013, 18:34 »
0
(эксперименты - они для меня эксперименты, т.к. вплотную ещё не сталкивался, только на уровне "прочитать туториал")
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн Tevinter Mage

  • *
  • Сообщений: 1471
[Skyrim] TES Creation Kit
« Ответ #730 : 21 Августа 2013, 13:38 »
0
А Ctrl+F4 должно работать на неписях-вампирах? А то у меня на альтмере что-то не сработало. Или так и должно быть? А то у Вингальмо вон лицо жёлтое несмотря на то, что он вампир.
Награды Золотая дева - за победу на конкурсе эро-скринов им. Мары и Дибеллы - 2014 Победителю командных соревнований на Фестивале Конец страды - 2014 Роза - приз "За стойкость" на Фестивале "Конец страды" Золотая Палитра - за самые красивые скриншоты (ПП 2013 года) Корона для достопочтенного Лорда Бухты-2013 Корона для достопочтенной Леди Бухты-2013 Друг Скайрима - монетка на удачу! Таинственному Коллекционеру, правившему бал на Бухте 31.10.12

Оффлайн Alliria

  • *
  • Сообщений: 1068
  • Timeo mortalis et dona ferentes
[Skyrim] TES Creation Kit
« Ответ #731 : 23 Августа 2013, 13:26 »
0
Мммм, непись уникальный? В родительских пресетах случаем других рас не значится?
Награды Золотая Палитра - за самые красивые скриншоты (ПП 2013 года)

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #732 : 23 Августа 2013, 21:01 »
0
У меня вопрос сглупа новый. Всё по той же теме, что и прошлый раз: о предметах на столах; всё-таки хочется понять, почему так.
А есть ли какой-то, скажем так, лимит предметов, которые можно разместить на кв. единицу площади и превышая который, все остальные предметы будут валиться со столов?

Ну вот, к примеру, маленький столик. На этом столике безопасно я могу разместить 6 предметов/объектов, включая скатерть. Если я положу седьмой предмет (первоначально я на столик навалил около дюжины всякоразных предметов, от вазы с чветоцками до яблок и винограда), то все они начнут валиться со стола, ставь ты галочку "don't havok settle" или не ставь - без разницы.
5-6 объектов в любой комбинации стоят как влитые, не шелохнутся. Больше 6 - падают. Мистика или так положено?
Статиками, как советовал  IgorLutiy, ещё не делал. На большие столы "влезает" больше предметов, забыл сколько.
Или я банально что-нить не так делаю?
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн Аладор

  • *
  • Сообщений: 2891
  • Пол: Мужской
  • Странник между мирами
[Skyrim] TES Creation Kit
« Ответ #733 : 23 Августа 2013, 22:10 »
0
Я думаю нет никакого ограничения, просто видимо из-за плотности их компоновки есть соприкосновение коллизий. Попробуй нажать F4 и посмотреть, может есть объект. чья коллизия существенно выходит за пределы самой модели
“Предупрежден, значит вооружен“
Никогда не кормите троллей, они не поддаются приручению, и от сытости лишь сильней дичают.
Награды Маяк - за неоценимую помощь в создании Бухты 2.0

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #734 : 23 Августа 2013, 22:23 »
0
И если выходит и они соприкасаются, то что?
Ведь те 6 предметов, что стоят как влитые, тоже друг с другом соприкасаются: на столе скатерть, на скатерти письмо, на письме цветы, кубок и бутылка достаточно плотно друг к другу стоят.
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн Аладор

  • *
  • Сообщений: 2891
  • Пол: Мужской
  • Странник между мирами
[Skyrim] TES Creation Kit
« Ответ #735 : 23 Августа 2013, 22:42 »
0
Скатерть не в счет, она неподвижна и коллизия у нее другая. А вот если подвижные объекты (типа бутылок) касаются друг-друга, то в итоге движок игры их может раскидать в разные стороны. И одно дело если просто едва касаются друг-друга и совсем другое, если их коллизии пересекаются.
И кстати, в редакторе не проверяешь устойчивость объектов запускам Havok Sim?
“Предупрежден, значит вооружен“
Никогда не кормите троллей, они не поддаются приручению, и от сытости лишь сильней дичают.
Награды Маяк - за неоценимую помощь в создании Бухты 2.0

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #736 : 23 Августа 2013, 23:02 »
0
Неа, не проверяю. Похоже, я совсем забыл, что это такое, напомни пожалуйста.  :-[
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн Аладор

  • *
  • Сообщений: 2891
  • Пол: Мужской
  • Странник между мирами
[Skyrim] TES Creation Kit
« Ответ #737 : 23 Августа 2013, 23:45 »
0
Выделяешь все объекты имеющие "вес" на столе, и нажимаешь кнопку в виде летящего мячика на панели инструментов. Называется Run Havok Sim
Запустится физический движок игры и объекты поведут себя так, как и в игре. Упадут, разлетятся или останутся стоять.
“Предупрежден, значит вооружен“
Никогда не кормите троллей, они не поддаются приручению, и от сытости лишь сильней дичают.
Награды Маяк - за неоценимую помощь в создании Бухты 2.0

Оффлайн РЕДМЕНЪ

  • *
  • Сообщений: 17343
  • Красный мракобесЪ
[Skyrim] TES Creation Kit
« Ответ #738 : 24 Августа 2013, 02:37 »
0
Ага, спасибо, полезная инфа для меня.
УЛЫБНИСЬ МИРУ И МИР УЛЫБНЁТСЯ ТЕБЕ!
Награды Маяк - за неоценимую помощь в создании Бухты 2.0 Мужественному и неотразимому Господину Бухты-2016 Друг императора - монетка на удачу! За то, что успевает, проделывает, умудряется и непонятный (ПП 2014 года) За участие в Битве сонетов За победу на новогоднем конкурсе скриншотов "Зимний пейзаж" Нетрезвому Драугру, правившему бал на Фестивале ведьм 13.10.13 Синяя Роза - за победу на Первом поэтическом конкурсе Бухты Цветущий Кактус - лучшему критику Первого поэтического конкурса Бухты За обширный и значительный вклад в развитие сайта и форума (ВП 2012 года) За обширный и значительный вклад в развитие сайта и форума (ПП 2012 года) Друг Скайрима - монетка на удачу! Золотой Пергамент - за замечательные рассказы (ВП 2011 года) Победитель конкурса модмейкеров №1 по теме "Расы" Почётный житель Бухты (ВП 2011)

Оффлайн Tevinter Mage

  • *
  • Сообщений: 1471
[Skyrim] TES Creation Kit
« Ответ #739 : 24 Сентября 2013, 21:00 »
0
Подскажите, пожалуйста, а как можно сделать лицо непися пресетом для создания главного героя? Вот у меня есть один компаньон, которого я делала, и я хочу гг с его внешностью. Я видела в редакторе пункт "является пресетом в чаргене" - я так понимаю, надо поставить галочку возле него? А что насчёт всех остальных параметров, тут есть ещё какие-то тонкости? И какие при этом появляются файлы и где они лежат?
« Последнее редактирование: 24 Сентября 2013, 22:37 от Tevinter Mage »
Награды Золотая дева - за победу на конкурсе эро-скринов им. Мары и Дибеллы - 2014 Победителю командных соревнований на Фестивале Конец страды - 2014 Роза - приз "За стойкость" на Фестивале "Конец страды" Золотая Палитра - за самые красивые скриншоты (ПП 2013 года) Корона для достопочтенного Лорда Бухты-2013 Корона для достопочтенной Леди Бухты-2013 Друг Скайрима - монетка на удачу! Таинственному Коллекционеру, правившему бал на Бухте 31.10.12

Оффлайн Alliria

  • *
  • Сообщений: 1068
  • Timeo mortalis et dona ferentes
[Skyrim] TES Creation Kit
« Ответ #740 : 14 Октября 2013, 05:42 »
0
Вопрос не столько по киту, сколько по скриптам.
В дебрях нексуса наткнулась на тему Dynamically attaching scripts to Actors near the player. Интересна она для меня тем, что предлагает альтернативный метод привязки скриптов к актерам - через квестовые алиасы, а не через маг.эффект (для которого есть тутор).
Все бы хорошо, но в теме готовых скриптовых решений авторы не дают, а в модах смотреть не вариант, ибо от него отказались. Но вот понадобилось.
В теме висит вот такой фрагмент скрипта:

Int i = 0
        ReferenceAlias refAlias
        ObjectReference objRef
        Int maxI = quest2.GetNumAliases ()
        Int j = 0
        ReferenceAlias objAliasToAdd
        ObjectReference objRefToAdd
        Int maxJ = quest1.GetNumAliases ()
        Bool exit
        While (refAlias || i == 0) && !exit
            refAlias = quest2.GetNthAlias (i) as ReferenceAlias
            If refAlias
                objRef = refAlias.GetReference ()
                If !objRef
                                        ;this Alias is empty in Quest 2, so find an alias in Quest 1
                    objAliasToAdd = quest1.GetNthAlias (j) as ReferenceAlias
                    If objAliasToAdd
                        objRefToAdd = objAliasToAdd.GetReference ()
                        If objRefToAdd
                            refAlias.ForceRefTo (objRefToAdd)
                            debugTrace ("added " + objRefToAdd + " (" + j + ") to alias " + refAlias + " (" + i + ")")
                        EndIf
                        j += 1
                    EndIf
                    If j >= maxJ
                        exit = True
                    EndIf

                ElseIf objRef
                    Bool clearAlias
                    If objRef.GetDistance (playerRef) > 10000
                                                ;this Alias in Quest 2 is too far from the player, so clear this alias
                        refAlias.Clear ()
                                                ;clearing the alias should remove the spell attached to it, but just in case, force-remove it
                        (objRef as Actor).RemoveSpell (damageAndSpellModifiersAbility)
                        debugTrace ("cleared distance > 10000 " + objRef + " " + refAlias)

                    ElseIf objRef as Actor
                        If (objRef as Actor).IsDead ()
                                                        ;this Alias in Quest 2 is dead, so clear this alias
                            refAlias.Clear ()
                                                        ;clearing the alias should remove the spell attached to it, but just in case, force-remove it
                            (objRef as Actor).RemoveSpell (damageAndSpellModifiersAbility)
                            debugTrace ("cleared dead " + objRef + " " + refAlias)
                        EndIf
                    EndIf
                EndIf
            EndIf
            i += 1
        EndWhile

Я переписала его, теперь скрипт выглядит так:

Scriptname aaAlliriaMaterialPlayerAliasScript extends ReferenceAlias

Quest property aaAlliriaRCRwaStartQuest auto
Quest property aaAlliriaRCRwaUpdateQuest auto
Spell Property AbAlliriaRCRMaterialAbility auto
;bool Function HasSpell(Spell AbAlliriaRCRMaterialAbility) native
Bool clearAliasARCR
Int i = 0
Int j = 0
ReferenceAlias refAliasARCR
ReferenceAlias objAliasToAddARCR
ObjectReference objRefARCR
ObjectReference objRefToAddARCR


Event OnInit()
    RegisterForUpdate(5.0)
EndEvent

Event OnUpdate()
    While ((aaAlliriaRCRwaUpdateQuest.GetID () > (i-1) ) && (aaAlliriaRCRwaStartQuest.GetID () > (j-1)))
           refAliasARCR = aaAlliriaRCRwaUpdateQuest.GetID () as ReferenceAlias
           If(refAliasARCR)
              objRefARCR = refAliasARCR.GetReference ()   
                If(!objRefARCR)
                  objAliasToAddARCR = aaAlliriaRCRwaStartQuest.GetID () as ReferenceAlias
                  If(objAliasToAddARCR)
                     objRefToAddARCR = objARCRAliasToAdd.GetReference ()
                     If(objRefToAddARCR)
                        refAliasARCR.ForceRefTo (objRefToAddARCR)
                     endIf
                     j += 1
                  endIf
                ElseIf(objARCRRef.GetDistance (playerRef) > 30000)
                    ARCRrefAlias.Clear ()
                    (objARCRRef as Actor).RemoveSpell (AbAlliriaRCRMaterialAbility)
                ElseIf ((objARCRRef as Actor).IsDead ())
                    ARCRrefAlias.Clear ()
                    (objARCRRef as Actor).RemoveSpell (AbAlliriaRCRMaterialAbility)
                endIf
           endIf
        i += 1
    EndWhile
EndEvent
Ессна, скрипт не компиллируется. Что не так?  ???

Награды Золотая Палитра - за самые красивые скриншоты (ПП 2013 года)

Оффлайн Letonoots

  • *
  • Сообщений: 242
  • Пол: Мужской
[Skyrim] TES Creation Kit
« Ответ #741 : 14 Октября 2013, 11:10 »
0
А чего в отладчике пишет?(Compiler Output который)

Оффлайн Alliria

  • *
  • Сообщений: 1068
  • Timeo mortalis et dona ferentes
[Skyrim] TES Creation Kit
« Ответ #742 : 14 Октября 2013, 14:06 »
0
Пишет, что некорректные свойства для квестов и некорректные действия в цикле.
Видимо, основной трабл в том, что нельзя в AliasScript определить properties квеста, а в QuestScript выполнить команду Alias.GetID.
Команды же GetNumAliases (оригинальный скрипт), похоже, просто нет.  :(
Надо попробовать в AliasScript написать функцию для задания массива GetID, и уже ее вызывать в QuestScript.
Награды Золотая Палитра - за самые красивые скриншоты (ПП 2013 года)

Оффлайн Letonoots

  • *
  • Сообщений: 242
  • Пол: Мужской
[Skyrim] TES Creation Kit
« Ответ #743 : 14 Октября 2013, 14:51 »
+1

Оффлайн AleksTirex

  • *
  • Сообщений: 424
[Skyrim] TES Creation Kit
« Ответ #744 : 15 Октября 2013, 05:00 »
+2
Ессна, скрипт не компиллируется. Что не так?
Для начала, это не скрипт, а кусок из скрипта. Тот кусок только на очистку алиаса. К тому же, и там и тут требуется SKSE.
 
Ошибки этого скрипта:
Принципиальная ошибка - нельзя делать циклы в блоке OnUpdate с постоянным обновлением (!). Вот запустился блок OnUpdate, в нём запустился цикл, а цикл он и есть цикл, т.е. он бесконечен, пока условия "истина". Через 5 секунд запустился второй OnUpdate и второй цикл, при этом первый так и работает. Через ещё 5 секунд - третий, четвёртый и т.д. до бесконечности. Через несколько минут комп встанет полностью.
Если хочется именно OnUpdate, тогда надо так:

Event OnInit()
    RegisterForSingleUpdate(5.0)
EndEvent

Event OnUpdate()
    While
      ;
    EndWhile
    RegisterForSingleUpdate(5.0)
EndEvent

Тогда блоки плодиться не будут.
 -------------
aaAlliriaRCRwaUpdateQuest.GetID ()
aaAlliriaRCRwaUpdateQuest - квест, функция GetID() возвращает FormID алиаса, вернуть FormID квеста она не может.
--------
aaAlliriaRCRwaUpdateQuest.GetID () > (i-1)
Сравнивать восьмизначное число FormID с количеством отработок цикла - можно, но зачем?
---------
aaAlliriaRCRwaUpdateQuest.GetID () as ReferenceAlias
FormID квеста преобразовать в ReferenceAlias невозможно.
--------
В скрипте не определено свойство/переменная objARCRRef типа ObjectReference, поэтому сравнить дистанцию с игроком нельзя.
В скрипте не определено свойство/переменная ARCRrefAlias типа ReferenceAlias, поэтому очищать нечего.
В скрипте не определено свойство/переменная objARCRAliasToAdd типа ReferenceAlias, поэтому определить, каким референсом оно заполнено невозможно.
-----------
-----------
Если думала, что в aaAlliriaRCRwaUpdateQuest.GetID() вернётся алиас, то... а какой именно алиас (?), их в квесте десятки могут быть, а число только одно...
(objARCRRef as Actor).RemoveSpell(AbAlliriaRCRMaterialAbility)
Зачем удалять спелл, если его не добавляли.
Если все алиасы только актёры, то надо сразу использовать Actor, а не ObjectReference - refAliasARCR.GetActorReference()
GetID() - функция SKSE
Не понятно, что вообще должен делать данный скрипт.
*******************
 
В общем, компилироваться и работать не будет.  ;)
Награды Орден "Ремесленник" - за уникальный плагин "Мелисса"  Орден "Ремесленник" - за мод "Сказка о потерянном счастье"

Оффлайн Alliria

  • *
  • Сообщений: 1068
  • Timeo mortalis et dona ferentes
[Skyrim] TES Creation Kit
« Ответ #745 : 15 Октября 2013, 08:10 »
0
Да я уж вижу, что не будет.  ;D
Смысл всей задумки старый: всем живым нпс, находящимся в той же локации, что и игрок, не дальше некоторого расстояния, выдать спелл/несколько спеллов. Когда нпс умирает или находится дальше, чем надо, спеллы соответственно снимаются.
Т.е., например, загружаю я сейв.
Движок смотрит, что в загруженной локации столько-то нпс (квест 2).
Если выдать им всем кучу свойств сразу (повесить абилку, например), то есть риск, что появятся тормоза.
Поэтому надо определить, кому выдавать, а кому нет. Надо выдавать тем, кто непосредственно взаимодействует с игроком, а это обычно ближайшие.
Но т.к. игрок как-то взаимодействует с нпс и с миром (перемещается сам, что-то делает с нпс, перезагружает сейв и т.), эти ближайшие - постоянно меняются.
Т.о. надо постоянно проверять, кому надо выдавать, а кому не выдавать.
Можно как написано в туторе на вики, это сделать, повесив на игрока заклинание типа Cloak определенного радиуса действия.
Я хочу попробовать это сделать через алиасы.
Смысл скрипта в том, чтобы алиасам из квеста 2 (которых, допустим, 50) задать свойства алиасов из квеста 1 (которых 15). Квест 1 запускается и останавливается из квестового скрипта, привязанного к квесту 2, вида:
Scriptname aaAlliriaMaterialQuestScript extends Quest 

Quest property aaAlliriaRCRwaStartQuest auto

Event OnUpdate ()
    aaAlliriaRCRwaStartQuest.Stop()
    Utility.Wait(5.0)
    aaAlliriaRCRwaStartQuest.Start()
EndEvent
Это надо, чтобы обновлять свойства алиасов.
« Последнее редактирование: 15 Октября 2013, 14:56 от Alliria »
Награды Золотая Палитра - за самые красивые скриншоты (ПП 2013 года)

Оффлайн AleksTirex

  • *
  • Сообщений: 424
[Skyrim] TES Creation Kit
« Ответ #746 : 15 Октября 2013, 16:28 »
+3
Смысл скрипта в том, чтобы алиасам из квеста 2 (которых, допустим, 50) задать свойства алиасов из квеста 1 (которых 15). Квест 1 запускается и останавливается из квестового скрипта, привязанного к квесту 2
Т.е. поиск актёров идёт с помощью квеста (по принципу заполнения алиасов)?
Можно и так, но тогда придётся делать много алиасов и если без SKSE, то все их надо прописать как свойства. Это весьма неудобно.
Если надо актёрам добавлять/удалять только абилки, то достаточно это делать просто скриптом, без алиасов.
 
Скрипт вешается на квест, он работает, пока активен квест, т.е. вкл/выкл квест == вкл/выкл скрипт.
Скрипт ищет актёров вокруг ГГ и если найденный актёр НПС, то добавляет абилку и записывает его себе в память (скрипт помнит 120 актёров).
Потом проверяет весь массив/память и если есть там актёр, который далеко и его боевая цель не ГГ, или актёр мёртв, то удаляется абилка и этот актёр удаляется из массива/памяти.
Если надо выключить скрипт, то выключают квест, при этом очищается память и снимаются все абилки с актёров.
 
Scriptname aaScript extends Quest 

Keyword Property ActorTypeNPC Auto
Spell Property akSpell Auto ; твоя абилка для НПС

Actor[] ClosestActors

Event OnInit()
  ClosestActors = new Actor[120] ; назначаем массив на 120 ячеек
  While IsRunning() ; работает, пока квест активный
    int iIndex = 100 ; количество попыток поиска актёров
    While(iIndex > 0) ; поиск актёров около ГГ
      iIndex -= 1
      Actor randomActor = Game.FindRandomActorFromRef(Game.GetPlayer(), 4096.0) ; радиус поиска 4096
      if randomActor.HasKeyword(ActorTypeNPC) ; если актёр НПС
        if !randomActor.HasSpell(akSpell) ; если у НПС нет абилки
          randomActor.AddSpell(akSpell) ; добавляем абилку
          int iEmpty = ClosestActors.Find(none) ; поиск свободного слота в массиве
          if iEmpty > -1
            ClosestActors[iEmpty] = randomActor  ; записываем актёра в массив
          else
            ; Debug.Notification("Все слоты заняты") ; сообщение для теста
          endif
        endif
      endif
      int iIndexActor = 120
      While iIndexActor > 0 ; проверка массива
        iIndexActor -= 1
        if ClosestActors[iIndexActor] ; если есть актёр под этим номером
          if (ClosestActors[iIndexActor].GetDistance(Game.GetPlayer())> 4096 && ClosestActors[iIndexActor].GetCombatTarget() != Game.GetPlayer()) || ClosestActors[iIndexActor].IsDead()
            ; если актёр далеко и его цель не ГГ, или актёр мёртв
            ClosestActors[iIndexActor].RemoveSpell(akSpell) ; удаляем спелл
            ClosestActors[iIndexActor] = none ; очищаем слот в массиве
          endif
        endif
      endWhile
    endWhile
    Utility.Wait(3.0) ; через 3 сек. новый поиск актёров
  endWhile
  int iIndexClear = 120
  While iIndexClear > 0 ; очистка массива
    iIndexClear -= 1
    if ClosestActors[iIndexClear] ; если есть актёр под этим номером
       ClosestActors[iIndexClear].RemoveSpell(akSpell) ; удаляем спелл
       ClosestActors[iIndexClear] = none ; очищаем слот в массиве
    endif
  endWhile
   ; Debug.Notification("Квест и скрипт работу завершили") ; сообщение для теста
endEvent
Награды Орден "Ремесленник" - за уникальный плагин "Мелисса"  Орден "Ремесленник" - за мод "Сказка о потерянном счастье"

Оффлайн Alliria

  • *
  • Сообщений: 1068
  • Timeo mortalis et dona ferentes
[Skyrim] TES Creation Kit
« Ответ #747 : 15 Октября 2013, 18:04 »
0
Т.е. поиск актёров идёт с помощью квеста (по принципу заполнения алиасов)?
Да.
Можно и так, но тогда придётся делать много алиасов и если без SKSE, то все их надо прописать как свойства. Это весьма неудобно.
SKSE стоит, как без него.)
Если надо актёрам добавлять/удалять только абилки, то достаточно это делать просто скриптом, без алиасов.
Ну, не только. Просто, пока я работаю с актерами через абилки, но потом может понадобиться. Поэтому хотелось бы применить наиболее универсальный метод.
Огромное спасибо за помощь! Попробую так, по результату отпишусь.)

Алсо, я так понимаю, перки для NPC не работают в принципе?


Сообщение объединено: 16 Октября 2013, 15:27
Малость побегала. Скрипт отрабатывает, но судя по debug сообщениям только раз - при первом запуске игры с подключенным модом. Скрипт повесила на квест 1, который запускается с интервалом 5 сек скриптом, прицепленным к квесту 2. Может, что-то еще в записях квестов надо прописать?
« Последнее редактирование: 16 Октября 2013, 15:27 от Alliria »
Награды Золотая Палитра - за самые красивые скриншоты (ПП 2013 года)

Оффлайн AleksTirex

  • *
  • Сообщений: 424
[Skyrim] TES Creation Kit
« Ответ #748 : 17 Октября 2013, 20:45 »
+1
Скрипт отрабатывает, но судя по debug сообщениям только раз - при первом запуске игры с подключенным модом. Скрипт повесила на квест 1, который запускается с интервалом 5 сек скриптом, прицепленным к квесту 2. Может, что-то еще в записях квестов надо прописать?
???  Этот скрипт автономный/самостоятельный, ему не нужны те два квеста, ему нужен свой квест, который постоянно работает и при надобности может выключаться и потом опять включаться (это для запуска и остановки скрипта).
Если этот скрипт/квест выключать каждые 5 секунд, то все данные о неписях будут тут же стираться, ведь сам скрипт их помнит, а не алиасы.
 
Помимо абилок неписям можно что угодно добавлять и удалять - перки (они тоже работают на НПС), предметы, оружие, броню, заклинания, крики, менять их параметры и т.д.
В отличии от варианта на алиасах, в этом варианте не надо прописывать кучу алиасов (и даже одного алиаса не надо), сам скрипт помнит одновременно 120 НПС, да и вряд ли вокруг ГГ может быть такое количество неписей, поэтому 120 вполне достаточно.
 
Но если есть желание делать именно на алиасах, то можно и для этого варианта написать правильный скрипт.
 
*************
Событие-функция OnInit() в квестовом скрипте срабатывает при первой загрузки игры и каждый раз при старте квеста.

*************
*************
int iIndex = 100 ; количество попыток поиска актёров - эту циферку можно уменьшить до 20-30, если комп слабый.
Награды Орден "Ремесленник" - за уникальный плагин "Мелисса"  Орден "Ремесленник" - за мод "Сказка о потерянном счастье"

Оффлайн Alliria

  • *
  • Сообщений: 1068
  • Timeo mortalis et dona ferentes
[Skyrim] TES Creation Kit
« Ответ #749 : 18 Октября 2013, 05:59 »
0
Событие-функция OnInit() в квестовом скрипте срабатывает при первой загрузки игры и каждый раз при старте квеста.
Мне же нужно, чтобы твой скрипт постоянно работал, а не только при первой загрузке сейва. Как только весь массив заполнен  скрипт завершен, надо его перезапустить, т.е. запустить квест. Так?
Поэтому, добавила в скрипт идентификатор выполнения цикла:
int ARCRloopFId = 0
While IsRunning()
............
endWhile
ARCRloopFId = 1
Debug.Notification("Квест и скрипт работу завершили")
А скрипт для запуска квеста теперь такой:
Scriptname aaAlliriaMaterialQuestUpdScript extends Quest

Quest property aaAlliriaRCRwaStartQuest auto
int property ARCRloopFId auto
Event OnInit()
    RegisterForUpdate(1.0)
    Debug.Trace("aaAlliriaRCRwaUpdateQuest Initialized, script uptater initialized!")
EndEvent   
   
Event OnUpdate ()

if ARCRloopFId == 1
    aaAlliriaRCRwaStartQuest.Stop()
    Utility.Wait(5.0)
    aaAlliriaRCRwaStartQuest.Start()
    Debug.Trace("aaAlliriaRCRwaSTARTQuest started!")
    UnregisterForUpdate()
endif
EndEvent

омимо абилок неписям можно что угодно добавлять и удалять - перки (они тоже работают на НПС)
Очень похоже на то, что не работают. Не только у меня, другие мододелы тоже пишут, что не работают.


Сообщение объединено: 18 Октября 2013, 06:08
Но если есть желание делать именно на алиасах, то можно и для этого варианта написать правильный скрипт.
Есть, т.к. еще с броней/оружием и т.д. надо будет работать, а для них тоже можно задать алиасы.

UPD.
И все равно скрипт отрабатывает только раз - при первом старте с подключенным модом.  :( Может глянешь в самом моде?
Если будет желание глянуть, пруф:
« Последнее редактирование: 18 Октября 2013, 13:27 от Alliria »
Награды Золотая Палитра - за самые красивые скриншоты (ПП 2013 года)