Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)
03.08.2017 13:21:53, Takirell сказал(-а):

Я пробовал ловить на интервале .01 (именно так пишется это значение) в скрипте с ловлей клавиши. Работало всегда. Старайтесь использовать токены, они лучше всего работают. Функции иногда ведут себя крайне странно при их вызове... Или не работают вообще.
А так - да, под фиксацию кнопок, кроме как через квест, больше ничего придумать невозможно. Ну или пишите DLL плагин, он обрабатывается игрой... очень быстро. Я бы сказал - запредельно быстро.
Как я уже сказал, небольшие скрипты с таким интервалом не должны сильно сожрать ФПС.

Дак я на 0,01 и ловил... Как раз на таком интервале у меня и не было пропусков нажатий, как я и говорил... А вопрос про 1000 fps был скорее теоретический, ведь, теоретически, при ловле клавиш через квесты в любом случае может быть пропуск нажатия, если у юзера дофига мощный комп, и я просто хотел найти менее рандомную альтернативу...

Кстати, что-за токены? И про какие функции вы говорите? Про те, что через call вызываются? Ну, с ними у меня проблем пока не было... Зато не приходится писать одно и то-же при обычном касте спелла, и нажатия на кнопку...

Ну, а как писать DLL плагины для облы, я вообще не имею ни малейшего понятия, да и, вроде, пока не сильно то и надо...
P.S 0.01 ведь то-же самое, что .01? По крайней мере, во многих языках программирования (из тех, что я знаю, по крайней мере) допускается такая замена...

Изменено пользователем Max_Cross
Опубликовано
03.08.2017 17:31:46, Max_Cross сказал(-а):

Дак я на 0,01 и ловил... Как раз на таком интервале у меня и не было пропусков нажатий, как я и говорил... А вопрос про 1000 fps был скорее теоретический, ведь, теоретически, при ловле клавиш через квесты в любом случае может быть пропуск нажатия, если у юзера дофига мощный комп, и я просто хотел найти менее рандомную альтернативу...

Кстати, что-за токены? И про какие функции вы говорите? Про те, что через call вызываются? Ну, с ними у меня проблем пока не было... Зато не приходится писать одно и то-же при обычном касте спелла, и нажатия на кнопку...

Ну, а как писать DLL плагины для облы, я вообще не имею ни малейшего понятия, да и, вроде, пока не сильно то и надо...
P.S 0.01 ведь то-же самое, что .01? По крайней мере, во многих языках программирования (из тех, что я знаю, по крайней мере) допускается такая замена...

Токены - это заскриптованные предметы (как правило эти предметы - неиграбельные пустышки и делаются из одежды\брони или прочих предметов), которые добавляются игроку\актеру и выполняют скрипт, после чего "самоуничтожаются" с помощью RemoveMe. Это позволяет сэкономить ресурсы игры и не обрабатывать скрипт просто так, пока Вам это не нужно.
Ну а DLL файлы - это уже программирование. Эти вещи пишут забугровые авторы и тру проггеры, ибо наши только и умеют, что создавать порно-баннеры пока что не освоили это... искусство.
Да, верно, .01 это тоже самое, что и 0.01.

  • Нравится 1

Ничто не истинно, все потрачено

Опубликовано

Простите, что вклиниваюсь... А в каких случаях токен может "застрять"? У меня это стабильная проблема в случае с одним персонажем, хотелось-бы понять причину

Памятные медальки

pre_1478976171__001.png.webp.png pre_1491657309__kubok_kogvartsa-85.png.webp.png pre_1491656593__kubok_4.png.webp.png awards.png.png

FM

PerpetuumMobile-J-III.png.webp
Опубликовано
03.08.2017 18:15:57, Arteia сказал(-а):

Простите, что вклиниваюсь... А в каких случаях токен может "застрять"? У меня это стабильная проблема в случае с одним персонажем, хотелось-бы понять причину

Сперва скажите - как Вы его добавляете? И кому?

Ничто не истинно, все потрачено

Опубликовано
03.08.2017 18:10:43, Takirell сказал(-а):

Токены - это заскриптованные предметы (как правило эти предметы - не игровые и делаются из одежды\брони или прочих предметов), которые добавляются игроку\актеру и выполняют скрипт, после чего "самоуничтожаются" с помощью RemoveMe. Это позволяет сэкономить ресурсы игры и не обрабатывать скрипт просто так, пока Вам это не нужно.
Ну а DLL файлы - это уже программирование. Эти вещи пишут забугровые авторы и тру проггеры, ибо наши только и умеют, что создавать порно-баннеры пока что не освоили это... искусство.
Да, верно, .01 это тоже самое, что и 0.01.

Стоп, я могу вешать скрипты на предметы? А если на скриптах, что на предметах, будут несколько переменных, они ведь будут сохраняться в игре (в квестах же сохраняются)? Просто хотелось бы хоть как-то компенсировать отсутствие собственных ActorValue, и сделать у персонажей разное количество крови... Я, вообще, изначально думал просто добавлять разное количество предметов (в самом BIE есть пару предметов аля VmpDryToken), но мне, по сути, нужно 2 переменные - количество выпитой крови у данного персонажа, и время, когда я в последний раз пил у него кровь... И если добавлять 60 токенов в инвентарь, показывая, что я выпил 60% крови - ещё терпимо, то добавлять 30000 предметов, если я выпил кровь в 20 часов 20-го дня уже как-то странно... Отсюда и вопрос про сохранение переменных в предметах... Или есть более простой способ компенсировать отсутствие собственных ActorValue?

Опубликовано (изменено)
03.08.2017 18:33:49, Max_Cross сказал(-а):

Стоп, я могу вешать скрипты на предметы? А если на скриптах, что на предметах, будут несколько переменных, они ведь будут сохраняться в игре (в квестах же сохраняются)? Просто хотелось бы хоть как-то компенсировать отсутствие собственных ActorValue, и сделать у персонажей разное количество крови... Я, вообще, изначально думал просто добавлять разное количество предметов (в самом BIE есть пару предметов аля VmpDryToken), но мне, по сути, нужно 2 переменные - количество выпитой крови у данного персонажа, и время, когда я в последний раз пил у него кровь... И если добавлять 60 токенов в инвентарь, показывая, что я выпил 60% крови - ещё терпимо, то добавлять 30000 предметов, если я выпил кровь в 20 часов 20-го дня уже как-то странно... Отсюда и вопрос про сохранение переменных в предметах... Или есть более простой способ компенсировать отсутствие собственных ActorValue?

Конечно. Кто Вам вообще сказал, что локальные переменные не сохраняются? Я все недоумеваю. Пока токен лежит в инвентаре у актера, он продолжает выполняться как будто находится на объекте.
Правда вот, если по какой-то причине предмет будет удален\утерян, само собой, все сбросится и прервется, поскольку скрипт обрабатывается на копии токена, а не на его базовом объекте. Базовый объект будет всегда возвращать нулевые значения. Но даже тут есть некоторые тонкости...
Получателя токена считывать необходимо через GetContainer. Получаем Ref актера и работаем с ним. А вообще, есть OBSE плагин "Add Actor Values". Возможно это именно то, что Вам так не хватает. Я не вкурил как работает этот мод, да и надобности особой не было.
Единственно, я бы не советовал использовать маг. эффекты. С ними в Обле полная дичь, однако были ситуации, что кроме них мне ничто не могло помочь.

Изменено пользователем Takirell
  • Нравится 1

Ничто не истинно, все потрачено

Опубликовано (изменено)
03.08.2017 18:38:21, Takirell сказал(-а):

Конечно. Кто Вам вообще сказал, что локальные переменные не сохраняются? Я все недоумеваю. Пока токен лежит в инвентаре у актера, он продолжает выполняться как будто находится на объекте.
Правда вот, если по какой-то причине предмет будет удален\утерян, само собой, все сбросится и прервется, поскольку скрипт обрабатывается на копии токена, а не на его базовом объекте. Базовый объект будет всегда возвращать нулевые значения. Но даже тут есть некоторые тонкости...
Получателя токена считывать необходимо через GetContainer. Получаем Ref актера и работаем с ним. А вообще, есть OBSE плагин "Add Actor Values". Возможно это именно то, что Вам так не хватает. Я не вкурил как работает этот мод, да и надобности особой не было.
Единственно, я бы не советовал использовать маг. эффекты. С ними в Обле полная дичь, однако были ситуации, что кроме них мне ничто не могло помочь.

Базовые токены, копии... нипанятна... Ну, я в любом случае не собираюсь заставлять npc выкидывать токены из инвентаря а если получится сделать то, что я планировал, вообще круто будет... Интересно, на сколько целесообразно будет не только хранить информацию в этих токенах, но и ставить им свой интервал обновления, и в нём, на пример, дамажить ХП актёра...

На счёт того, почему я не думал, что локальные переменные сохраняются... Ну, просто это слишком круто как-то... Если есть такие возможности, почему я до сих пор не видел модов с возможностью писать собственные книги прямо в игре в неограниченном количестве (ведь, по сути, одна книга = 1 предмет с 1 скриптом с 1 текстовой переменной, и пара легко (как мне, на данный момент, кажется) создаваемых костылей для обхода сброса переменных при выбросе), или, на пример, пустые бутылки из под зелий, и возможность пить их частично (пол бутылки)... И это только то, что я за пару минут выдумал... :D Ну, похоже, я слишком замечтался...
(Если что, я пока что, даже не проверял, как работают скрипты на предметах, так что, если выше бред написал - извините)

 

Про эффекты вообще не понял, о чём вы? Или вы думали, что я захочу добавлять спеллы актёрам, используя magnitude как количество выпитой крови (ни фига себе я тут выдумал :D)?

 

Плагин - это тот, который я на нексусе видел, от JRoush? Меня немного пугают комменты под ним, что у всех всё вылетает, что логи под 40mb создаются, и.т.д (хотя, возможно, стоило читать более, чем 4 коммента)...

Изменено пользователем Max_Cross
Опубликовано

Ну, это не мой скрипт, честно говоря (еще побаиваюсь с ними работать, только с квестами разбираюсь), но механизм такой- персонаж игрока активирует спящего персонажа (конкретно- пьет кровь) в результате чего добавляется токен (механизм токенов такой, что они добавляют диалог, когда они в количестве один, одноразовое сообщение- когда их два и дополнительный диалог, позволяющий сделать компаньоном (если упрощать), когда их три. Каждый добавленный токен прикрепляет анимацию ).  У всех остальных персонажей эти токены сбрасываются, но в случае с конкретным нпс это не так. На случай, если это критично- на него навешен пакет постоянного сна. Лично я подозреваю, что дело в том, что для него (нпс. Или-же локации, где он находится) не предусмотрено обновления... По крайней мере, это моя гипотеза, учитывая, что пакет сна сбрасывается при команде resurrect. Есть особенность- токены сбрасываются, но до определенного момента, потом они принудительно сохраняются и вызывают компаньонский диалог. Короче, мне очень не хочется заражать этого перса вампиризмом, но токены вынуждают, как спасти нпс от кусачей участи, помимо того, что продолжать его избегать что может вызвать подобную проблему и как с этим бороться?  :laugh: 

03.08.2017 18:17:35, Takirell сказал(-а):

Сперва скажите - как Вы его добавляете? И кому?

Памятные медальки

pre_1478976171__001.png.webp.png pre_1491657309__kubok_kogvartsa-85.png.webp.png pre_1491656593__kubok_4.png.webp.png awards.png.png

FM

PerpetuumMobile-J-III.png.webp
Опубликовано (изменено)
03.08.2017 19:40:46, Max_Cross сказал(-а):

Спойлер

Базовые токены, копии... нипанятна... Ну, я в любом случае не собираюсь заставлять npc выкидывать токены из инвентаря а если получится сделать то, что я планировал, вообще круто будет... Интересно, на сколько целесообразно будет не только хранить информацию в этих токенах, но и ставить им свой интервал обновления, и в нём, на пример, дамажить ХП актёра...

На счёт того, почему я не думал, что локальные переменные сохраняются... Ну, просто это слишком круто как-то... Если есть такие возможности, почему я до сих пор не видел модов с возможностью писать собственные книги прямо в игре в неограниченном количестве (ведь, по сути, одна книга = 1 предмет с 1 скриптом с 1 текстовой переменной, и пара легко (как мне, на данный момент, кажется) создаваемых костылей для обхода сброса переменных при выбросе), или, на пример, пустые бутылки из под зелий, и возможность пить их частично (пол бутылки)... И это только то, что я за пару минут выдумал... :D Ну, похоже, я слишком замечтался...
(Если что, я пока что, даже не проверял, как работают скрипты на предметах, так что, если выше бред написал - извините)

 

Про эффекты вообще не понял, о чём вы? Или вы думали, что я захочу добавлять спеллы актёрам, используя magnitude как количество выпитой крови (ни фига себе я тут выдумал :D)?

 

Плагин - это тот, который я на нексусе видел, от JRoush? Меня немного пугают комменты под ним, что у всех всё вылетает, что логи под 40mb создаются, и.т.д (хотя, возможно, стоило читать более, чем 4 коммента)...

Любой объект, вынесенный в мир, представляет из себя копию (Ref ссылку) своего базового объекта. Функции AddSpell\AddSpellNS, SetAV, оказывают влияние на БАЗОВЫЙ объект. Т.е если взять FormID Гоблина, и вынести таких Гоблинов 4 штуки в мир (или разместить через PlaceAtMe), после чего зайти в игру и в консоли прописать ОДНОМУ ИЗ НИХ SetAV Health 1000, то помимо того, кому мы прописали 1к ХП, у всех остальных, имеющих тот же самый базовый объект, станет такое же кол-во здоровья. С токенами все не на столько плохо, но в OSFM написано, что при добавлении предмета с помощью AddItem\AddItemNS, блок OnAdd, якобы, не обрабатывается, поскольку предмет генерируется внутри инвентаря актера. Могу лишь сказать - вранье и провокация. Блок обрабатывается отлично, правда вот, если в нем стоят условия вот такого типа;

Short DoOnce

Begin OnAdd
if DoOnce == 0
;Здесь Мы что-то делаем
Let DoOnce := 1
Endif
End

мы натыкаемся на то, что после удаления этого токена и добавления нового, точно такого же (не обязательно сразу), скрипт посылает нас лесом и не срабатывает. Такой баг встречается только в случае, если получатель токена - игрок.
Единственно, чего Вы не сможете сделать, это напрямую вносить значение переменных в токен извне, впрочем, как и с заклинаниями.
Локальные переменные сохраняются в игровой сессии (и даже после перезагрузки игры), единственным условием является то, что необходимо делать сохранения (после выпитого зелья, например). Ну это логично. Простой пример - это создание токена с таймером. В блоке OnAdd инициализируем получателя, задаем кол-во секунд и запускаем таймер уже в GameMode. Например мы хотим, что бы получателя убивало спустя 3 секунды. Даем токен, делаем сохранение и ждем. Через 3 секунды цель откидывается. Ради интереса, загружаемся на сделанное сохранение - цель так же откинется, спустя 3 секунды. Тоже самое будет если мы выйдем из игры и зайдем в неё снова, загрузившись на сделанный сейв.
Стоит помнить, что некоторые OBSE функции не записывают изменения в сохранки, и здесь, для их возврата, необходимо использовать связку:

if GetGameLoaded || GetGameRestarted
​;Здесь Вы снова что-то возвращаете
Endif

И да, я видел мод, который позволяет игроку вести дневник, записывая прямо в игре свой текст, который потом написан в книге.
Используя эффекты, я имел ввиду, что есть практика использования скриптовых заклинаний, которые работают подобно токенам, но имеют килотонну затупов и багов. Особенно бесит принцип обработки блоков в таких заклинаниях. Ну, не о том речь.
А на счет того OBSE плагина я ничего не смогу сказать, поскольку, как уже писал, разобраться в нем не смог... ну и не захотел.

Изменено пользователем Takirell
  • Нравится 1

Ничто не истинно, все потрачено

Опубликовано
03.08.2017 19:55:58, Arteia сказал(-а):

Спойлер
Ну, это не мой скрипт, честно говоря (еще побаиваюсь с ними работать, только с квестами разбираюсь), но механизм такой- персонаж игрока активирует спящего персонажа (конкретно- пьет кровь) в результате чего добавляется токен (механизм токенов такой, что они добавляют диалог, когда они в количестве один, одноразовое сообщение- когда их два и дополнительный диалог, позволяющий сделать компаньоном (если упрощать), когда их три. Каждый добавленный токен прикрепляет анимацию ).  У всех остальных персонажей эти токены сбрасываются, но в случае с конкретным нпс это не так. На случай, если это критично- на него навешен пакет постоянного сна. Лично я подозреваю, что дело в том, что для него (нпс. Или-же локации, где он находится) не предусмотрено обновления... По крайней мере, это моя гипотеза, учитывая, что пакет сна сбрасывается при команде resurrect. Есть особенность- токены сбрасываются, но до определенного момента, потом они принудительно сохраняются и вызывают компаньонский диалог. Короче, мне очень не хочется заражать этого перса вампиризмом, но токены вынуждают, как спасти нпс от кусачей участи, помимо того, что продолжать его избегать что может вызвать подобную проблему и как с этим бороться?  :laugh:

Я бы хотел взглянуть на систему удаление токенов у всех актеров, кроме текущего. Вообще, Вы можете убрать токен с помощью консоли, достаточно узнать его FormID. Узнаете ID, щелкаете мышкой в консоли по НПС, и вводите RemoveItem <ID> 999. Проблема решена.
И что вообще за мод такой?

Ничто не истинно, все потрачено

Опубликовано (изменено)
04.08.2017 04:43:19, Takirell сказал(-а):

Спойлер

Любой объект, вынесенный в мир, представляет из себя копию (Ref ссылку) своего базового объекта. Функции AddSpell\AddSpellNS, SetAV, оказывают влияние на БАЗОВЫЙ объект. Т.е если взять FormID Гоблина, и вынести таких Гоблинов 4 штуки в мир (или разместить через PlaceAtMe), после чего зайти в игру и в консоли прописать ОДНОМУ ИЗ НИХ SetAV Health 1000, то помимо того, кому мы прописали 1к ХП, у всех остальных, имеющих тот же самый базовый объект, станет такое же кол-во здоровья. С токенами все не на столько плохо, но в OSFM написано, что при добавлении предмета с помощью AddItem\AddItemNS, блок OnAdd, якобы, не обрабатывается, поскольку предмет генерируется внутри инвентаря актера. Могу лишь сказать - вранье и провокация. Блок обрабатывается отлично, правда вот, если в нем стоят условия вот такого типа;

Short DoOnce

Begin OnAdd
if DoOnce == 0
;Здесь Мы что-то делаем
Let DoOnce := 1
Endif
End

мы натыкаемся на то, что после удаления этого токена и добавления нового, точно такого же (не обязательно сразу), скрипт посылает нас лесом и не срабатывает. Такой баг встречается только в случае, если получатель токена - игрок.
Единственно, чего Вы не сможете сделать, это напрямую вносить значение переменных в токен извне, впрочем, как и с заклинаниями.
Локальные переменные сохраняются в игровой сессии (и даже после перезагрузки игры), единственным условием является то, что необходимо делать сохранения (после выпитого зелья, например). Ну это логично. Простой пример - это создание токена с таймером. В блоке OnAdd инициализируем получателя, задаем кол-во секунд и запускаем таймер уже в GameMode. Например мы хотим, что бы получателя убивало спустя 3 секунды. Даем токен, делаем сохранение и ждем. Через 3 секунды цель откидывается. Ради интереса, загружаемся на сделанное сохранение - цель так же откинется, спустя 3 секунды. Тоже самое будет если мы выйдем из игры и зайдем в неё снова, загрузившись на сделанный сейв.
Стоит помнить, что некоторые OBSE функции не записывают изменения в сохранки, и здесь, для их возврата, необходимо использовать связку:

if GetGameLoaded || GetGameRestarted
​;Здесь Вы снова что-то возвращаете
Endif

И да, я видел мод, который позволяет игроку вести дневник, записывая прямо в игре свой текст, который потом написан в книге.
Используя эффекты, я имел ввиду, что есть практика использования скриптовых заклинаний, которые работают подобно токенам, но имеют килотонну затупов и багов. Особенно бесит принцип обработки блоков в таких заклинаниях. Ну, не о том речь.
А на счет того OBSE плагина я ничего не смогу сказать, поскольку, как уже писал, разобраться в нем не смог... ну и не захотел.

Так... Я правильно понимаю, что:

1) Заспавнив 4-х гоблинов, и изменив одному хп, оно изменится у всех... С уже заспавненными бандитами и гоблинами (в оригинальной игре) такого дерьма ведь не случается?
2) OnAdd (о котором я, кстати, до этого момента даже не знал) срабатывает только при первом добавлении в инвентарь игроку... Я правильно понимаю, что с бандитами я такой участи я могу не опасаться, и у них OnAdd будет срабатывать всегда?

3) Я не смогу из скрипта-квеста, обрабатывающего удерживание клавиши V и последующее питьё крови, как - либо изменить количество уже выпитой крови, так как инфа на ней будет находиться в токене в инвентаре у npc? Я хоть прочитать эти значения смогу, или все они меняются только в самом скрипте, и мне придётся выдумывать костыли типа создавать отдельные переменные для из связи в скрипте-квесте (float setBlood, float getBlood, например)... Так, наверное, даже обычный пример с добавлением разного количества токенов адекватнее будет...

4) Базовый объект, это, например, vmpDryToken, который я вижу во вкладке Items-Clothing в CS, а копия - это уже конкретный токен в инвентаре у воон того бандита?

5) Мой только что выдуманный костыль - создание переменной LastBloodDeleted, присваивания ей значений (GameDaysPassed*24 + GameHour) (Почему-то более адекватного варианта получить дату я пока не нашёл), и удаления 1 токена (желательно этого-же самого, но если окажется, что заскрипованным предметам, например, нельзя менять количество, то можно и другого), если она превысит 1 час (ну, типа, у людей со временем кровь немного восстанавливается), по идее, должен работать вполне адекватно?

Такс, пойду я, пожалуй, сам немного с токенами поэксперементирую, а то пока как-то недоводилось, и я только вопросы задаю...

Upd: В целом, проверил, как работают токены, нацепив на предмет скрипт из 5 пункта, ну и в добавок ещё в gamemode дамажил ХП актёра... В целом, всё работает нормально, но меня немного пугает тот факт, что, когда я, во время тестов, выводил каждый кадр messagemox'ы - они выводились постоянно, сразу-же после закрытия предыдущего, без перерыва... Значит ли это, что у скрипта на предмете маленький интервал обновления, и сильно ли это скажется на производительности, если каждый NPC в каком-нибудь городе будет ходить с таким токеном?

Изменено пользователем Max_Cross
Опубликовано (изменено)
03.08.2017 11:45:57, Ggleebb сказал(-а):

Какое примерно количество полигонов, разрешение текстур и их типы должны быть в модели оружия для игры обливион? Скажите пожалуйста кто знает)))

модели: желательно не выше 10тыс полигонов. золотая середина 2-5тыс. текстуры: реализм будет с 2к, даже если развертка будет(и должна быть) одна на все запчасти оружия. 

если это меч с деревянной/кожаной рукояткой, то экспортировать лучше отдельно, потом слить в нифскопе, что можно былоб блеск меша (glossines) настроить отдельно. на металл лучше ставить 40-50, а на дерево/кожу - 10/20

Изменено пользователем Yura99
Опубликовано
04.08.2017 10:14:22, Yura99 сказал(-а):

модели: желательно не выше 10тыс полигонов. золотая середина 2-5тыс. текстуры: реализм будет с 2к, даже если развертка будет(и должна быть) одна на все запчасти оружия. 

если это меч с деревянной/кожаной рукояткой, то экспортировать лучше отдельно, потом слить в нифскопе, что можно былоб блеск меша (glossines) настроить отдельно. на металл лучше ставить 40-50, а на дерево/кожу - 10/20

Это же для Обливиона?

-У меня самая худшая работа работа в мире! - сказала зубная щётка.
-Ну ну... - ответила туалетная бумага. :D
Опубликовано
04.08.2017 10:32:43, Yura99 сказал(-а):

ну естественно, раз вопрос в теме обливиона)

ну, спасибо за ответ))). просто собрался меч сделать, а не знаю сколько полигонов. как бы не превысить)))

-У меня самая худшая работа работа в мире! - сказала зубная щётка.
-Ну ну... - ответила туалетная бумага. :D
Опубликовано
04.08.2017 10:39:04, Ggleebb сказал(-а):
а не знаю сколько полигонов. как бы не превысить)))

Обла и 100 тыщ полигонов проглотит (есть такие мечи), просто можно словить баг движка, когда он не может их посчитать и они растут в геометрической прогрессии, и фпс падает почти до нуля.

мелкую детализацию (типа мотков кожи, заклепок) лучше не моделькой,а на текстуре. затем запечь на нормали.

Опубликовано

И ещё один вопрос, какой тип текстур поддерживает обливион?

-У меня самая худшая работа работа в мире! - сказала зубная щётка.
-Ну ну... - ответила туалетная бумага. :D
Опубликовано
04.08.2017 10:45:55, Yura99 сказал(-а):

Обла и 100 тыщ полигонов проглотит (есть такие мечи), просто можно словить баг движка, когда он не может их посчитать и они растут в геометрической прогрессии, и фпс падает почти до нуля.

мелкую детализацию (типа мотков кожи, заклепок) лучше не моделькой,а на текстуре. затем запечь на нормали.

 

И ещё один вопрос, какой тип текстур поддерживает обливион?

-У меня самая худшая работа работа в мире! - сказала зубная щётка.
-Ну ну... - ответила туалетная бумага. :D
Опубликовано (изменено)

Нет, это я знаю. Но всё равно уже не нужно. Сам нашёл))

Но за помощь спасибо))

Изменено пользователем Ggleebb
-У меня самая худшая работа работа в мире! - сказала зубная щётка.
-Ну ну... - ответила туалетная бумага. :D
Опубликовано (изменено)
04.08.2017 06:13:32, Max_Cross сказал(-а):

Спойлер

Так... Я правильно понимаю, что:

1) Заспавнив 4-х гоблинов, и изменив одному хп, оно изменится у всех... С уже заспавненными бандитами и гоблинами (в оригинальной игре) такого дерьма ведь не случается?
2) OnAdd (о котором я, кстати, до этого момента даже не знал) срабатывает только при первом добавлении в инвентарь игроку... Я правильно понимаю, что с бандитами я такой участи я могу не опасаться, и у них OnAdd будет срабатывать всегда?

3) Я не смогу из скрипта-квеста, обрабатывающего удерживание клавиши V и последующее питьё крови, как - либо изменить количество уже выпитой крови, так как инфа на ней будет находиться в токене в инвентаре у npc? Я хоть прочитать эти значения смогу, или все они меняются только в самом скрипте, и мне придётся выдумывать костыли типа создавать отдельные переменные для из связи в скрипте-квесте (float setBlood, float getBlood, например)... Так, наверное, даже обычный пример с добавлением разного количества токенов адекватнее будет...

4) Базовый объект, это, например, vmpDryToken, который я вижу во вкладке Items-Clothing в CS, а копия - это уже конкретный токен в инвентаре у воон того бандита?

5) Мой только что выдуманный костыль - создание переменной LastBloodDeleted, присваивания ей значений (GameDaysPassed*24 + GameHour) (Почему-то более адекватного варианта получить дату я пока не нашёл), и удаления 1 токена (желательно этого-же самого, но если окажется, что заскрипованным предметам, например, нельзя менять количество, то можно и другого), если она превысит 1 час (ну, типа, у людей со временем кровь немного восстанавливается), по идее, должен работать вполне адекватно?

Такс, пойду я, пожалуй, сам немного с токенами поэксперементирую, а то пока как-то недоводилось, и я только вопросы задаю...

Upd: В целом, проверил, как работают токены, нацепив на предмет скрипт из 5 пункта, ну и в добавок ещё в gamemode дамажил ХП актёра... В целом, всё работает нормально, но меня немного пугает тот факт, что, когда я, во время тестов, выводил каждый кадр messagemox'ы - они выводились постоянно, сразу-же после закрытия предыдущего, без перерыва... Значит ли это, что у скрипта на предмете маленький интервал обновления, и сильно ли это скажется на производительности, если каждый NPC в каком-нибудь городе будет ходить с таким токеном?

1). Случается. Заспавненные актеры в мире хоть и имеют динамический ID (начинается на fff), тем не менее - они все имеют базовый объект. Но не все функции меняют базовый объект. Нужно внимательно читать их описание.

2). OnAdd срабатывает и на игроке постоянно, если в этом блоке нет условий-ограничителей, на примере того, что я писал выше.
3). Ммм... теоретически, в токене можно задать Float переменные (или любые другие), которые бы обновлялись каждый фрейм из квеста в GameMode, и уже от них менять значение в самом токене. Почему бы и нет? И зачем спавнить тонну токенов? Вы всегда можете задать конкретному токену цену, и по ней ориентироваться дальше. Easy (правда вновь встает вопрос о базовых объектах).

4). Да, верно. Но даже так, элементы инвентаря обрабатываются иначе + удаление этого же предмета можно осуществить через RemoveItem. Функция найдет копию этого объекта и выпилит её.
5). Боксы лучше всего ограничивать переменными. А лучше всего, используйте PrintToConsole иди DebugPrint, правда последнее пашет только в режиме отладки Облы.
На счет потери производительности - не уверен, что все будет НАСТОЛЬКО плохо. В Обле есть 3 степени обработки AI. Низкий, средний и высокий. Как правило, большинство НПС имеют флаг "No Low Level Processing", означает это, что все НПС, которые находятся в других локациях от игрока, тупо не обрабатываются. А что это значит? Верно. Ваши токены тоже не будут обрабатываться. Исключениями являются НПС с отсутствием этого флага и те, у которых установлен Quest Item. 
Делайте выводы.

Изменено пользователем Takirell
  • Нравится 1

Ничто не истинно, все потрачено

Опубликовано
04.08.2017 15:59:13, Takirell сказал(-а):
2). OnAdd срабатывает и на игроке постоянно, если в этом блоке нет условий-ограничителей, на примере того, что я писал выше.

А, то есть баг заключается в том, что... Стоп, а в чём он заключается? Это что, получается, при удалении предмета из инвентаря и добавления его заного, все переменные в нём могут сохранить значения с предыдущего предмета, и в результате DoOnce уже при добавлении равен 1? Или этот баг просто такой умный, что специально проверяет в скрипте наличие конкретно такого условия, и не запускает скрипт?

 

04.08.2017 15:59:13, Takirell сказал(-а):
3). Ммм... теоретически, в токене можно задать Float переменные (или любые другие), которые бы обновлялись каждый фрейм из квеста в GameMode, и уже от них менять значение в самом токене. Почему бы и нет? И зачем спавнить тонну токенов? Вы всегда можете задать конкретному токену цену, и по ней ориентироваться дальше. Easy (правда вновь встает вопрос о базовых объектах).

Обновлялись каждый фрейм из квеста в GameMode? То есть, я всё-таки могу менять значения в самом токене (под значениями я имею в виду float - переменные в токене, доступ к которым мне нужен из квеста).

Я, в целом, пока реализовал то, что планировал следующим образом - кол-во выпитой крови = количеству отдельных токенов в инвентаре у npc (в смысле, не токенов, а просто специальных предметов, на которых даже скрипта нет). Так-же есть отдельный токен (уже со скриптом (из 5-го пунка, который со временем удаляет предыдущие токены))... Немного смущает то, что количество предмета - только целое число... (Оно ведь только целое число, да? :D)... Кстати, на одном сайте вообще советовали компенсировать отсутствие собственных AV при помощи фракций, типа каждый npc может состоять в неограниченном числе фракций, и иметь в нём любой ранг от -128 до 127...

Опубликовано
06.08.2017 06:23:19, Max_Cross сказал(-а):

Спойлер

А, то есть баг заключается в том, что... Стоп, а в чём он заключается? Это что, получается, при удалении предмета из инвентаря и добавления его заного, все переменные в нём могут сохранить значения с предыдущего предмета, и в результате DoOnce уже при добавлении равен 1? Или этот баг просто такой умный, что специально проверяет в скрипте наличие конкретно такого условия, и не запускает скрипт?

 

Обновлялись каждый фрейм из квеста в GameMode? То есть, я всё-таки могу менять значения в самом токене (под значениями я имею в виду float - переменные в токене, доступ к которым мне нужен из квеста).

Я, в целом, пока реализовал то, что планировал следующим образом - кол-во выпитой крови = количеству отдельных токенов в инвентаре у npc (в смысле, не токенов, а просто специальных предметов, на которых даже скрипта нет). Так-же есть отдельный токен (уже со скриптом (из 5-го пунка, который со временем удаляет предыдущие токены))... Немного смущает то, что количество предмета - только целое число... (Оно ведь только целое число, да? :D)... Кстати, на одном сайте вообще советовали компенсировать отсутствие собственных AV при помощи фракций, типа каждый npc может состоять в неограниченном числе фракций, и иметь в нём любой ранг от -128 до 127...

1). Я точно не понял сам, как и почему это срабатывает, но почему-то именно в OnAdd есть такая проблема с условием-ограничителем. Нужно тестить дополнительно. Лично я больше не добавляю DoOnce в OnAdd, если знаю, что предмет будет в какой-то момент добавлен игроку не один раз.
2). А как кол-во предмета может быть дробным? Значение - да, но кол-во уж точно нет.
А людям с "того сайта, на котором советовали компенсировать отсутствие собственного AV фракциями", я бы сам посоветовал "учить матчасть", поскольку функция SetFactionRank изменяет БАЗОВЫЙ объект точно также, как и SetAV со всеми вытекающими. Это даже не костыль, а инвалидное кресло.

Ничто не истинно, все потрачено

Опубликовано (изменено)
04.08.2017 04:56:03, Takirell сказал(-а):

Я бы хотел взглянуть на систему удаление токенов у всех актеров, кроме текущего. Вообще, Вы можете убрать токен с помощью консоли, достаточно узнать его FormID. Узнаете ID, щелкаете мышкой в консоли по НПС, и вводите RemoveItem <ID> 999. Проблема решена.
И что вообще за мод такой?

Извините, что долго не отвечала, реал.

Честно говоря, не знаю, как вам ее показать... "ХDDD Спасибо, токен пока пытаюсь вычислить... Если что, мод вот

Изменено пользователем Arteia
Памятные медальки

pre_1478976171__001.png.webp.png pre_1491657309__kubok_kogvartsa-85.png.webp.png pre_1491656593__kubok_4.png.webp.png awards.png.png

FM

PerpetuumMobile-J-III.png.webp
Опубликовано
07.08.2017 18:58:11, Arteia сказал(-а):

Извините, что долго не отвечала, реал.

Честно говоря, не знаю, как вам ее показать... "ХDDD Спасибо, токен пока пытаюсь вычислить... Если что, мод вот

О, Боги, только не этот мод...
Ладно, попробую покумекать.

Ничто не истинно, все потрачено

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...