Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
stalkergoshawk
Zagolski, а в движке от abramcumner можно .dll собирать по отдельности? там все .dll собраны и скрипты подправлены, а я бы хотел собрать только .dll в которые правки внесу например xrGAME.dll а остальные оставить родные.
Zagolski
Ты что, только родился что ли? Нигде нельзя по отдельности собирать, все модули связаны между собой и зависят друг от друга. Конечно же можно отдельно модуль пересобрать, но только после полной сборки всего.
stalkergoshawk
Zagolski, я конечно в движке новичок, неотричаю. я пробывал собирать исходники engine.vc2008 на Visual Studio 2008, собрал сначала 3rd_party потом xrGAME.dll, кинул готовую .dll в оригинальную игру с заменой и игра норм запустилась. а вот с xrGAME.dll от abramcumner игра не запускаеться.
Zagolski
У него луабинд новый, да и под 2017 студию двиг. Конечно ничего со старым несовместимо. Собирай все вместе и не забудь правленые под новый луабинд скрипты заменить.
Если собрал под 2008 родные сорцы, так этот двиг и используй. Как-никак оригинал.
stalkergoshawk
Спасибо за советы. Буду пробывать
macron
Цитата(Modera @ 29.01.2019, 04:26) *
Дёргание убирается повышением значения консольной команды ph_frequency, если кто не понял из нашего разговора.

По экспериментам c ai-транспортом двигающемся по вейпоинтам, заметил, что иногда застревает при ph_frequency 100. Выставил 133, и проблема ушла.
RayTwitty
Цитата(macron @ 04.02.2019, 17:16) *
Цитата(Modera @ 29.01.2019, 04:26) *
Дёргание убирается повышением значения консольной команды ph_frequency, если кто не понял из нашего разговора.

По экспериментам c ai-транспортом двигающемся по вейпоинтам, заметил, что иногда застревает при ph_frequency 100. Выставил 133, и проблема ушла.

Оно не влияет совершенно, даже если поставить 10000 (по дефолту 100). Да и понятно, в исходниках достаточно прозрачно указано, что эта команда изменяет.

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


ZveroBoy95rus
Приветствую всех, возник один вопрос касаемо анимаций в игре. Я использую исходники движка morrey с адаптацией рендеров ЗП под ТЧ, по немногу исправляю баги и дополняю его и вот у меня возникла проблема, подключил тени от ГГ и обнаружил что при взятии в руки болта анимация визуала ГГ проигрывается не корректно, точнее сказать совсем не та что прописана в ActorAnimation.cpp может кто нибудь подсказать где искать корень проблемы.

Вот скриншот.
macron
Цитата(ZveroBoy95rus @ 19.02.2019, 20:33) *
где искать корень проблемы.

Конкретно в ТЧ аналогичная проблема была вроде в анимациях (omf) модели.
https://www.gameru.net/forum/index.php?s=&a...t&p=1648038
ZveroBoy95rus
Цитата(macron @ 19.02.2019, 21:34) *
Цитата(ZveroBoy95rus @ 19.02.2019, 20:33) *
где искать корень проблемы.

Конкретно в ТЧ аналогичная проблема была вроде в анимациях (omf) модели.
https://www.gameru.net/forum/index.php?s=&a...t&p=1648038


Уже решил данную проблему, надо было просто в конфигах болта изменить параметр animation_slot но спасибо за помощь)
ForserX
Забавная ситуация при использовании /permissive- или насколько сильно двиг привязан к компиляторам VS. Ни одна из библиотек не собралась без переписи кода.
Молния в вакууме
Цитата(ForserX @ 20.02.2019, 23:54) *
Забавная ситуация при использовании /permissive- или насколько сильно двиг привязан к компиляторам VS. Ни одна из библиотек не собралась без переписи кода.

Я когда переносил студиёвые конмоненты от редакторов на GCC у меня компилятор очень много ругался на шаблоны, и не только, и предлагал добавить ключ -fpermissive.

Ошибки я исправил, а warning'и остались, особенно в луабинде, более 10000 штук. Я уж хотел луабинд на опенхреевский заменить, он без предупреждений собирается, и быстрее. Жалко только он напримую с оригинальным не совместим, а разбиратся мне было лень. Так и оставил.
ForserX
Цитата(Молния в вакууме @ 21.02.2019, 01:08) *
Ошибки я исправил, а warning'и остались, особенно в луабинде, более 10000 штук. Я уж хотел луабинд на опенхреевский заменить, он без предупреждений собирается, и быстрее. Жалко только он напримую с оригинальным не совместим, а разбиратся мне было лень. Так и оставил.

Мои попытки порта закончились luabind'ом. Не люблю шаблоны. И луа. По xrEngine включительно, окси можно собрать любым нормальным компилятором.

А вообще, есть ощущение, что этот ключ через пару версий VS нельзя будет вырубить. С 2015 версии он ставится автоматически при создании проекта. До этого оно было вырублено.
Молния в вакууме
Цитата(ForserX @ 21.02.2019, 01:14) *
Мои попытки порта закончились luabind'ом. Не люблю шаблоны. И луа.

Надо заменить луа на другой язык. Гиперион вроде пытался питон прикручивать, как там у него дела?
ForserX
Молния в вакууме, у нас шарп прикручен. Только ко ещё не всё API вынесли
Молния в вакууме
ForserX, шарпей это не интересно, он же к студии прибит гвоздями. Надо что-то переносимое.
RayTwitty
Цитата
питон

А зачем менять один интерпретируемый язык на другой? По производительности, если не считать такты процессора как Нанобот, +/- одинаково будет, более того каких-то серьезных вычислений в скриптах не требуется - по изначальной задумке там должны быть только сюжетные действия (заспавнить аптечку, выдать поршень и т.д.). Пихать какую-либо движковую логику в скрипты это моветон. Раньше это было оправдано отсутствием исходников, а сейчас нафига?

Я бы вообще API порезал, оставив лишь самое необходимое (ИМХО).
Молния в вакууме
RayTwitty, не будет одинаково, питон медленне чем ЛУА.
Зато он объектно-ориентированный, в отличии от луа, в котором ооп добавляется луабиндом. На одну библиотеку меньше придётся использовать.
Кроме того стандартный интерпретатор питона написан на pure c, без всяких шаблонов, его проще переносить между компиляторами, можно например будет собрать СДК борландом полностью, без зависимости от других компиляторов.
Луа конечно тоже на pure c, но луабинд на c++, увы, и борландом не собирается.
atanda
Цитата(Молния в вакууме @ 21.02.2019, 02:55) *
в котором ооп

Там для этого есть очень-очень гибкие таблицы.

RayTwitty
Цитата(Молния в вакууме @ 21.02.2019, 02:55) *
RayTwitty, не будет одинаково, питон медленне чем ЛУА.
Зато он объектно-ориентированный, в отличии от луа, в котором ооп добавляется луабиндом. На одну библиотеку меньше придётся использовать.
Кроме того стандартный интерпретатор питона написан на pure c, без всяких шаблонов, его проще переносить между компиляторами, можно например будет собрать СДК борландом полностью, без зависимости от других компиляторов.
Луа конечно тоже на pure c, но луабинд на c++, увы, и борландом не собирается.

Конечно, "на одну библиотеку меньше при сборке СДК" весьма весомый аргумент в пользу перевода скриптов сталкера на другой язык с потерей обратной совместимости biggrin.gif Нет, конечно хозяин-барин, но вряд ли кто-то будет переписывать тонну уже написанных скриптов, чтобы просто запустить это под новым движком.
Молния в вакууме
RayTwitty, да это так, мысли в слух. До реализации вряд-ли доберусь.
ForserX
RayTwitty, в окси нет особого рвения на поддержку сталка. Нам сам xray интересен. Как закончим со спектром, сделаем небольшую демку движка, мини игра на 15-20 минут.
NanoBot-AMK
Наконец - то сделал гранаты РГО, РГН как надо, не просто скриптовыми костылями, или их движковыми портами, а как надо, с точки зрения профа архитектора. В общем, сделал для физики коллбек на изменения скорости, сейчас полностью ушёл от зависимости от ФПС.
RayTwitty
NanoBot-AMK, лучше бы установку растяжек сделал с динамической веревкой.
NanoBot-AMK
RayTwitty, ну это не слишком сложно, вот только верёвку делать я не буду, т.к. не умею. А так, были мысли сделать растяжку по типу как автор "Боевой подготовки" советовал, проще конечно с партикловой верёвкой сделать. Ну и совсем просто сделать мину с сейсмическим взрывателем, НПС подходит к ней и она взрывается.
RayTwitty
Цитата(NanoBot-AMK @ 23.02.2019, 03:16) *
ну это не слишком сложно, вот только верёвку делать я не буду, т.к. не умею. А так, были мысли сделать растяжку по типу как автор "Боевой подготовки" советовал, проще конечно с партикловой верёвкой сделать. Ну и совсем просто сделать мину с сейсмическим взрывателем, НПС подходит к ней и она взрывается.

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

Цитата(NanoBot-AMK @ 23.02.2019, 03:16) *
Ну и совсем просто сделать мину с сейсмическим взрывателем, НПС подходит к ней и она взрывается.

Эта хрень вообще не отличается от стандартной аномалии-мины и никому не нужна.
NanoBot-AMK
RayTwitty, всё это сложно, и не понятно как рисовать верёвку, так что делать пожалуй не буду.
xrModder
Есть ли исходники чистой релизной версии движка v1.0006?
ForserX
xrModder, нет
xrModder
Код
Сборка xrRender_R2...
...
LINK : fatal error LNK1104: не удается открыть файл "xrSound.lib"
СБОЙ построения.

Не представляю зачем рендеру библиотека звука
ForserX
xrModder, отключи линковку и посмотри
xrModder
Не могу собрать тч на vs2017 - куча предупреждении и ошибок sad.gif
ForserX
xrModder, способ для ленивых/непроггеров: ставим 2005-2010 студию, выставляем в 2017 тулсеты от 2005-2010 студии, радуемся.
NanoBot-AMK
Тут кое кто, ну не тут, а на АМК-форуме, писал о проблеме потери патронов в шотгане при загрузке.
Код
BOOL    CWeaponShotgun::net_Spawn(CSE_Abstract* DC)
{
    BOOL    res = inherited::net_Spawn(DC);
    CSE_ALifeItemWeaponShotGun*        E = smart_cast<CSE_ALifeItemWeaponShotGun*>(DC);
    u32    ammoCount = E->m_AmmoIDs.size();
    if(ammoCount>0){
        m_magazine.clear();
        for (u32 i=0; i<ammoCount; i++){
            u8            ammoType = E->m_AmmoIDs[i];
            CCartridge    cartidge; cartidge.m_flags.zero();
            cartidge.Load(*m_ammoTypes[ammoType], ammoType);
            m_magazine.push_back(cartidge);
        }
    }
    return res;
}

Ещё надо в заголовках не забыть прописать этот метод.
Код
virtual BOOL    net_Spawn            (CSE_Abstract* DC);

Да если кто не заметил, то при загрузке в шотгане оказывается заряжен последним типом патрона, наследник РГ-6 соответственно тоже. blink.gif
Zagolski
В R1 в ЗП в CLightR_Manager::render_point есть такой участок кода:

Код
        L_dir.set                    (0,-1, 0);
        float    _camrange            = 300.f;
        L_pos.set                    (L->position);            
        //L_pos.y    +=    _camrange;
        L_view.build_camera_dir        (L_pos,L_dir,L_up);
        L_project.build_projection    (deg2rad(2.f),1.f,_camrange-L->range,_camrange+L->range);
        L_combine.mul                (L_project,L_view);


Сомнительно заккоменчена вот эта строка: //L_pos.y += _camrange; (причем в ЧН она функционирует). Я бы посоветовал раскомментировать ее, иначе свет от точечного света на R1 может некорректно считаться. Это явно видно по коду.
RayTwitty
Кто-нибудь мне может объяснить, почему сталкер не умеет показывать сообщения на худе в 5 строчек? Сообщения в Журнале ПДА при этом отображаются.
ТЧ, разрешение экрана 1920х1080.

Код
-- работает, 6 строчек
db.actor:give_game_news("ХРЕЙ З\\nА\\nЕ\\nБ\\nА\\nЛ", "ui\\ui_icons_task", Frect():set(100,200,50,50), 0, 10000)

-- не работает, 5 строчек
db.actor:give_game_news("ХРЕЙ З\\nА\\nЕ\\nБ\\nА", "ui\\ui_icons_task", Frect():set(100,200,50,50), 0, 10000)


Когда сменил разрешение на 1280х1024, всё заработало blink.gif
Marafonec
RayTwitty, 1920х1080:


Обсуждали это очень давно здесь https://www.amk-team.ru/forum/topic/5525-so...;comment=749363 и ниже.

ЗЫ. Что-то я не совсем понял как здесь файлы прицепить.

Нажмите для просмотра прикрепленного файла
RayTwitty
Marafonec, первое что я и сделал когда обнаружил проблему - увеличил на 100 пикселей sp_log_list по высоте и отдельный айтем сообщения. Но оно, конечно, не сработало, поскольку 6 строк показывается, а они больше чем 5, следовательно проблема не в высоте.

Я думаю, там проблема где-то в рендере Scroll View, там есть условие пересечения для рендеринга. Возможно где-то числа с плавающей запятой шалят.

З.Ы. ты приложил файлы оригинального ТЧ.
Marafonec
RayTwitty, вполне вероятно, что я ошибаюсь, но как бы скрин говорит сам за себя - именно твоя строка в 5 строк. А файлы я приложил из своего мода, мы забыли что такое невывод или частичный вывод каких-либо сообщений на экран - всегда все выводится в полном объеме на любом разрешении. А в оригинале ТЧ просто нет искомых файлов с суффиксом _16.
RayTwitty
Цитата(Marafonec @ 16.03.2019, 09:43) *
А файлы я приложил из своего мода, мы забыли что такое невывод или частичный вывод каких-либо сообщений на экран

Они полностью идентичны оригинальному ТЧ biggrin.gif Проверял WinMerge через сравнение папок.

Цитата(Marafonec @ 16.03.2019, 09:43) *
но как бы скрин говорит сам за себя - именно твоя строка в 5 строк.

Хорошо, надеюсь это мой локальный глюк.
ForserX
X-Ray Oxygen ищет C++/CLI разработчиков.
Задача проста:
Перенос таблиц экспорта в Lua в Managed код.
Zagolski
Кто-нибудь отключал в ЗП компиляцию шейдеров в кэш? Ну, чтобы не приходилось постоянно кэш чистить при каждом изменении в шейдерах.
Я у себя на бум просто проверку отключил на наличие файлов в кэше, чтобы они при каждом запуске перекомпиливались с перезаписью. Но может какой другой более изящный способ есть?
macron
Цитата(Zagolski @ 08.04.2019, 22:41) *
Но может какой другой более изящный способ есть?

Батник с предварительным удалением кеша перед запуском игры. laugh.gif
abramcumner
Цитата(Zagolski @ 08.04.2019, 22:41) *
Но может какой другой более изящный способ есть?

Проверить даты изменения файлов. Или в скомпиленный шейдер класть crc32 исходника. Если исходник изменен позже скомпилированного или crc не совпало, надо перекомпилировать.
SkyLoader
Вариант с датами быстрее будет, но в таком случае надо не забывать про инклуды, которые тоже могут изменяться.
ForserX
Zagolski, отключали. Такое себе, постоянно рекомпилятся, сейчас у нас вариант с crc32.
Zagolski
Ну на релизном варианте это и не нужно делать, чтоб перекомпиливались, а только при разработке. А то наверное не только меня одного кондратий скоро хватит постоянно шейдеры чистить. Я вообще думал, может разрабы оставили какую возможность отключать предварительную компиляцию. Но похоже, что нет.

ForserX, А там у вас как сделано, к тем опциям "111265453" добавляется crc в название файла? Ну в принципе да, такое можно и на постоянку сделать. Весьма удобно и работать будет быстрее, чем с полной перекомпиляцией.

А с другой стороны кэш вообще можно убрать. Какая от него польза? Ну на пару сек дольше старт игры. Да и то только при наличии в коде шейдеров навороченных [unroll]. Зато сколько проблем доставляет. Разработчику - постоянно чистить. Игроку - тоже чистить при установке шейдеров. К тому же многие игроки забывают кэш очищать или не знают, потом на форумах много ненужных вопросов.
AndreySol
ТЧ
В хедере level.h имеется глобальная ф-ция:
Код
IC CHUDManager& HUD() { return *((CHUDManager*)Level().pHUD); }
Ну и в различных местах, довольно массово используется, типа
Код
HUD().Font().pFontStat->OutNext("%s ",start_indent);
Захотел ее использовать в CEntityCondition, но получил от студии "error: недопустимый неполный тип". В EntityCondition.h подключение вроде имеется: #include "Level.h".
А что не так-то ?
abramcumner
Цитата(AndreySol @ 12.04.2019, 21:07) *
но получил от студии "error: недопустимый неполный тип". В EntityCondition.h подключение вроде имеется: #include "Level.h".
А что не так-то ?

Все остальные типы тоже нужно проинклудить: CHUDManager, CFont, ...
cjayho
Вопрос - никто ли не пытался исправить в двигле ТЧ баг с солнцем? Либо я не там копаю либо все дружно плакали кололись но продолжали юзать скриптовый костыль.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.