• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Не стесняюсь спросить....

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Очень интересно было бы узнать, какое состояние хочет движок назначить C_NPC при ударах
Warn: 0 U:NPC: Unknown BodyState :127 .... <oNpc.cpp,#15759>

Определенной константы BS_ с 127 нет в скриптах, возможно огрызок от старых версии, возможно что-то другое, в общем интересно.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.641
Баллы
625
Определенной константы BS_ с 127 нет в скриптах, возможно огрызок от старых версии, возможно что-то другое, в общем интересно.
Ну в движке есть просто состояния (BS) и они лежат тупо перечислением в пределах от 0 до 30. А есть модификаторы (BS_MOD), они уже идут как побитовые маски начиная со 128, 256 и тд.
И помимо всего этого есть еще некий BS_ONLY_STATE со значением 127 (специально на 1 меньше, чем младший модификатор), который играет роль фильтра, чтобы отделять BS от BS_MOD в поле bodyState, так как и перечисление, и побитовые маски запихиваются в одну кучу.
К примеру bodyState = BS_WALK(1) | BS_MOD_DRUNK(256) будет равен 257. Чтобы из этой помойки получить чистое состояние, можем использовать выражение bodyState & BS_ONLY_STATE, тогда все что больше 127 будет удалено из результата и мы получим чистый BS_WALK(1) без модификатора. А если наоборот надо проверить наличие модификатора drunk, то используем выражение bodyState & BS_MOD_DRUNK(256) == BS_MOD_DRUNK.

Очень интересно было бы узнать, какое состояние хочет движок назначить C_NPC при ударах
Скорее всего никакое. Валидное значение BS, как следует из портянки выше, находится в пределах от 0 до 30, то есть от BS_STAND до BS_CONTROLLING соответсвенно. Варнинг срабатывает тогда, когда происходит выход за пределы этого диапазона, как бы отменяя попытку изменить состояние персонажа. Единственный на мой взгляд выход за диапазон может происходит в том случае, когда вызывается проигрывание какой-либо анимации, а одновременно с этим там еще переназначается состояние персонажа. Очевидно, что переназначать что-либо каждый раз нет необходимости, поэтому значение по умолчанию равно -1, то есть такому значению, которое лежит вне диапазона перечисления и отменяет эту операцию с дебильным варнингом.

ЗЫ так почему же ругается на 127, а не -1? Потому что -1 в бинарнике будет равен тридцати двум единицам. А при использовании фильтра BS_ONLY_STATE побитовым сложением произойдет то самое усечение значения до семи единиц, что и соответствует константе 127 в десятичной системе.
 
Последнее редактирование:

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Варнинг срабатывает тогда, когда происходит выход за пределы этого диапазона, как бы отменяя попытку изменить состояние персонажа. Единственный на мой взгляд выход за диапазон может происходит в том случае, когда вызывается проигрывание какой-либо анимации, а одновременно с этим там еще переназначается состояние персонажа.
Видимо, так и есть, вместе с варнингом иногда бывает
Warn: 0 D: zModel.cpp(zCModel::StartAni): Ani not found: T_GOTHIT .... <zModel.cpp,#2581>
Warn: 0 U:NPC: Unknown BodyState :127 .... <oNpc.cpp,#15759>

Вот только эта анимация в humans есть, почему не проигрывается, это уже другой вопрос.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.222
Благодарности
3.449
Баллы
485
Model Hits Level - модель ударяется об меш (не путать с атакой)


А что вызывается при падении предмета в воду?
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
Подскажите, кто редактировал мир готики (New World), как загрузить отредактированный мир из .max в .zen?
Из туториалов я понял, что в Spaser 2 надо грузить .3ds но в нем стоит ограничение на 54.000 полигонов, а New World занимает около 480.000 полигонов.
Должно быть какое-то решение.
мне пока в голову пришел только вариант разбить весь мир на куски по 50.000 полигонов и подгружать их по-очереди, но это выглядит, как не правильный вариант, предчувствую кучу потерянных кусков.
Подгрузить только переделанную поляну тоже так себе вариант будут торчать "старые" полигоны. Тем более моя поляна чуть ниже по высоте. Только если вы подскажите, как в Спейсере удалять полигоны "мира"
 
Последнее редактирование:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.900
Благодарности
6.777
Баллы
1.625
Oxbow, разрезай мир на куски, потом каждый кусок экспортируй как 3дс, и в спакере их мержи.
А вообще лучше брать отдельный кусок, который находится в _work\data\Meshes\Level и там правь как тебе нужно. Потом уже в спакере компилишь полный NewWorld
 

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.931
Благодарности
560
Баллы
275
Подскажите, кто редактировал мир готики (New World), как загрузить отредактированный мир из .max в .zen?
Из туториалов я понял, что в Spaser 2 надо грузить .3ds но в нем стоит ограничение на 54.000 полигонов, а New World занимает около 480.000 полигонов.
Должно быть какое-то решение.
мне пока в голову пришел только вариант разбить весь мир на куски по 50.000 полигонов и подгружать их по-очереди, но это выглядит, как не правильный вариант, предчувствую кучу потерянных кусков.
Подгрузить только переделанную поляну тоже так себе вариант будут торчать "старые" полигоны. Тем более моя поляна чуть ниже по высоте. Только если вы подскажите, как в Спейсере удалять полигоны "мира"
Рекомендую через Spacer.net, по описанному алгоритму.
 

Den4ik

Участник форума
Регистрация
14 Ноя 2020
Сообщения
53
Благодарности
1
Баллы
105
Всех приветствую. Товарищи, нужна помощь. Ранее этот вопрос уже здесь обсуждался. Касается он перевода музыки в формат готики через direct music producer. Один человек поделился видео гайдом, но на тот момент у меня ещё не было в наличии необходимых композиций, поэтому я это дело отложил. А теперь, когда композиции есть, нет гайдов, так как они были удалены и теперь не знаю как быть, надеюсь, что кто нибудь сможет помочь с этим вопросом
 

Mantrid

Участник форума
Регистрация
31 Янв 2009
Сообщения
207
Благодарности
138
Баллы
200
так как они были удалены
Отсюда?

А я ведь скачивал эти видева. Могу поделиться. :)
1697659598345.jpeg
 

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.953
Благодарности
1.487
Баллы
465
Mantrid, если поделишься, будет хорошо.
Я сам думал их схоронить, но благополучно упустил момент
 

Den4ik

Участник форума
Регистрация
14 Ноя 2020
Сообщения
53
Благодарности
1
Баллы
105
А ты пробовал по этому гайду делать? Я все повторил, но только для фоновой композиции и проблема такая, саундтрек начинается много раз и затем просто заканчивается и не повторяется. Не знаю в чем проблема, может кто нибудь подскажет
Пост автоматически объединён:

И ещё играет настолько тихо в игре, что если герой бежит, тот звук громче музыки. Можно ли в программе как то звук увеличить?
 
Последнее редактирование:

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.953
Благодарности
1.487
Баллы
465
Сверху Снизу