Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
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
Winsor
чет я совсем не понял. Экспериментировал с некоторыми моделями (спавнил с одними и теми же координатами)- например булка хлеба спавниться нормально, модель энергетика, аптечка - тоже. т.е. как бы Physics.cpp+ode работает? Коллизии видятся, вылетов нет. Вот только от чего зависит - провалится модель вниз или ее подбросит вверх если она по "размеру" немного "погружается" в материал?
NanoBot-AMK
Кстати, попробовал свой код для управляемых ракет, и ракету начало сильно раскачивать, и она закрутилась. Видать придётся, как и реальной ракете, делать специальную стабилизацию. blink.gif
abramcumner
Цитата(Winsor @ 30.09.2019, 15:03) *
вылетов нет.

А что с этими трубками есть вылеты? Еще получается, что сквозь земли трубки никогда не проваливаются, только через эту конструкцию?

Можешь выложить object трубок и секцию трубок из конфига? Ну и object конструкции на всякий случай.

Цитата(NanoBot-AMK @ 30.09.2019, 18:12) *
Кстати, попробовал свой код для управляемых ракет, и ракету начало сильно раскачивать, и она закрутилась. Видать придётся, как и реальной ракете, делать специальную стабилизацию. blink.gif

Ну формула странная. Угол через скалярное произведение - норм. Но вот clamp не нужен: если dir`ы отнормированы, там и так все будет хорошо; если нет, то явно и поделить на длины перед арккосинусом. Иначе ты всегда будешь на +-90 крутить, конечно ракета будет закручиваться.

Векторное произведение норм, а синус откуда? Там по идее момент должен быть: масса на угловую скорость, угловая ускорость = угол поделить на fixed_step.
Diesel
Решил в сети ворон завести. Но там эти к...ровы к ГГ привязаны.
Вырезал приязку. Вороны заработали. Кружат в нуле.
Что можно придумать для нормально-адекватного поведения ворон?


static Fvector vV_centr={0,0,0}; //Это новый центр


/* //Diesel cut
// At random times, change the direction (goal) of the plane
if(fGoalChangeTime<=0)
{
fGoalChangeTime += fGoalChangeDelta+fGoalChangeDelta*Random.randF(-0.5f,0.5f);
Fvector vP = Actor()->Position(); //нет, кроме сингла.
vP.y += +fMinHeight;
vGoalDir.x = vP.x+vVarGoal.x*Random.randF(-0.5f,0.5f);
vGoalDir.y = vP.y+vVarGoal.y*Random.randF(-0.5f,0.5f);
vGoalDir.z = vP.z+vVarGoal.z*Random.randF(-0.5f,0.5f);
}
*/ //Diesel cut


//Diesel new
// At random times, change the direction (goal) of the plane
if(fGoalChangeTime<=0)
{
fGoalChangeTime += fGoalChangeDelta+fGoalChangeDelta*Random.randF(-5.0f,5.0f);
//Fvector vP = Actor()->Position();
vV_centr.y += +fMinHeight;
vGoalDir.x = vV_centr.x+vVarGoal.x*Random.randF(-5.5f,5.5f);
vGoalDir.y = vV_centr.y+vVarGoal.y*Random.randF(-5.5f,5.5f);
vGoalDir.z = vV_centr.z+vVarGoal.z*Random.randF(-5.5f,5.5f);
}
//Diesel new
RayTwitty
Цитата(Дизель @ 01.10.2019, 00:15) *
static Fvector vV_centr={0,0,0}; //Это новый центр

Ну и зачем вообще прибавлять нулевой вектор? Сразу к высоте прибавляй fMinHeight внизу и всё.
NanoBot-AMK
Дизель, они там к камере привязаны в ТЧ, и к актору в ЗП.
Надо сделать специальное свойство координату, вот и данная группа ворон и будет кружится во круг этой точки. Точку задают через конфиг, и/или логику, и/или скриптовый метод. Как то так.

Есть мысль сделать самолёт-бот (управляет ИИ) для СТАЛКЕРа. Вопрос? Есть ли модели самолётов?, в точности модель штурмовика Су-25. У меня где-то валялась модель беспилотника, и ещё какой-то левый самолёт.
Думаете сложно, нет код ещё проще чем у вертолёта. Можно даже скриптами для оригинального движка сделать, на классе машины (БТРа).

abramcumner,
Я сделал более оптимальный код, но для управляемых ракет придётся дополнительно заморочиться. Надо как-то сделать стабилизацию. Кстати у настоящих ракет ЗРК так же присутствует система гашения раскачки ракеты. Так что всё правильно.

ЗЫ
Забыл ещё. Зомби-вороны! С виду как живые, но в жизнь у них -1.0 и метод alive даёт фальш, так же при обстреле ракетами, они совсем дохли, но при этом зависали в воздухе и дёргались. Не понял как это вылечить.
Появлялись после того как я на уровне всех ворон перебил, а потом на свалку перешёл и обратно на кордон. То же при ручном спавне. Игра ТЧ.
jamakasi
Дизель, самый простой вариант и чтобы более менее красиво, высоту вектора сделать фиксированной, а X и Y брать динамикой по любому алгоритму:
1) Самый тупой способ, интерполировать координаты между ГГ, т.е. условно они стартуют в 0 0, появились игроки, берется первый и динамически до него интерполируется координаты, как только они добрались до него, летят к следующему и т.д.
2) Завести чуть логики которая на геймплей поработает, задавать вектор позиции последнего трупа с таймером, улосно убит игрок, вороны кружат над трупом в течении 1 минуты затем летят к следующему последнему трупу.
3) Пойти еще дальше, брать вектор положения от игрока с наибольшим числом убийств.
Winsor
Цитата(abramcumner @ 30.09.2019, 18:51) *
Цитата(Winsor @ 30.09.2019, 15:03) *
вылетов нет.

А что с этими трубками есть вылеты? Еще получается, что сквозь земли трубки никогда не проваливаются, только через эту конструкцию?
Можешь выложить object трубок и секцию трубок из конфига? Ну и object конструкции на всякий случай.

Нет, вылетов нет. только проваливаются, если модель частично в текстуру "погружена". Сквозь землю тоже проваливается, если в ней частично торчит. если спавнить выше (чтобы весь меш был над землей либо над объектом) - то не проваливается. Причем я нашел объект железной плиты , сквозь которую не падает вниз - то там сама плита тоньше чем меш трубы. Как бы решение я вижу но по своему незнанию не понимаю как определить что меш (скелет, физическая оболочка) при спавне будет частично погружена в объект.
конфиг обычный
Код
[flame_parts]:II_ATTCH
visual                        = dynamics\equipments\flame_prt_gorelka.ogf
description                = flame_part_desc
inv_name                    = item_flame1_name    
inv_weight                = 0.3
inv_grid_width            = 1
inv_grid_height            = 1
inv_grid_x                = 11
inv_grid_y                = 3
cost                        = 50

[trubka]:flame_parts
visual                    = dynamics\equipments\flame_prt_trubka.ogf
used_ai_location        = false
description                = trubka_descr
inv_name                = trubka
inv_weight                = 0.5
inv_grid_width            = 2
inv_grid_height            = 1
inv_grid_x                = 2
inv_grid_y                = 40
cost                        = 500

модель: https://drive.google.com/open?id=1pOFRkfkXk...oUqzzDzZOvQkBdv
модель конструкции - нема к сожалению. подойдет любой "бетонный" блок большой, либо плиты один на один сложенные, как на Свалке у перехода в Бар.
Yara
Цитата(Winsor @ 01.10.2019, 12:04) *
Как бы решение я вижу но по своему незнанию не понимаю как определить что меш (скелет, физическая оболочка) при спавне будет частично погружена в объект.

Конвертнуть в .object и посмотреть в сдк с включенной сеткой, часть модели по оси у будет ниже 0. Трубка как раз такая:


Поправить в 3д редакторе положение модели

Winsor
Спасибо! Ваш совет помог. Но я думал что как то можно движком узнать что модель "вторчалась" во что-то smile.gif и уже движком ее "выдвинуть" из этого чего-то.
Zagolski
Интересно, в ЗП отказались от использования моделей трупов мутов которые _dead. В ЧН это работало, а в ЗП этот код в CCustomMonster::visual_name вырезали. И если вернуть, игра начинает вылетать при загрузке трупа в кадре с ошибкой CKinematicsAnimated::ID_Cycle_Safe. Зачем вырезали, неужто глючило что?
Модель _dead, это такая же модель, только без анимации. Типа как ресурсов меньше потребляет.
NanoBot-AMK
Zagolski, движок всё равно требует некоторые анимации, даже если спавнишь мертвое тело.
cjayho
QUOTE (Дизель @ 30.09.2019, 23:15) *
Решил в сети ворон завести. Но там эти к...ровы к ГГ привязаны.
Вырезал приязку. Вороны заработали. Кружат в нуле.
Что можно придумать для нормально-адекватного поведения ворон?


static Fvector vV_centr={0,0,0}; //Это новый центр



CODE
Fvector            vP = { Random.randF(-5.0f,5.0f), 0.f, Random.randF(-5.0f,5.0f) };


не?
Diesel
cjayho, рабочий вариант. Тоже самое, что ноль, только рандома больше.



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


Вот ТЧ вариант:

fGoalChangeTime += fGoalChangeDelta+fGoalChangeDelta*Random.randF(-0.5f,0.5f);
Fvector vP;
vP.set(Device.vCameraPosition.x,Device.vCameraPosition.y+fMinHeight,Device.vCame
raPosition.z);
vGoalDir.x = vP.x+vVarGoal.x*Random.randF(-0.5f,0.5f);
vGoalDir.y = vP.y+vVarGoal.y*Random.randF(-0.5f,0.5f);
vGoalDir.z = vP.z+vVarGoal.z*Random.randF(-0.5f,0.5f);
Shoкer
Цитата(NanoBot-AMK @ 01.10.2019, 02:39) *
Забыл ещё. Зомби-вороны! С виду как живые, но в жизнь у них -1.0 и метод alive даёт фальш, так же при обстреле ракетами, они совсем дохли, но при этом зависали в воздухе и дёргались.


Посмотри правки в этом файле если интересно, только это ЗП.
https://github.com/OpenXRay/xray-16/blob/xd...row/ai_crow.cpp

Конкретно:
https://github.com/OpenXRay/xray-16/commit/...dd92e973a499ef8
https://github.com/OpenXRay/xray-16/commit/...837fb330c6859aa

Цитата(Zagolski @ 01.10.2019, 15:01) *
Модель _dead, это такая же модель, только без анимации. Типа как ресурсов меньше потребляет.


Странно, касательно монстров хз, но по сталкерам мне казалось в СДК наоборот всем трупам анимацию прописывают, что-бы при спавне они в красивой позе лежали. Смотрел давно, возможно это не так.
Diesel
Упал с крыши в сетевой и вылетел двиг. Это о чём?
R_ASSERT2(dMass_valide(&m),"bad bone mass params");

Код
CODE
void CPHElement::add_Mass(const SBoneShape& shape,const Fmatrix& offset,const Fvector& mass_center,float mass,CPHFracture* fracture)
{

dMass m;
dMatrix3 DMatx;
switch(shape.type)
{
case SBoneShape::stBox :
{
dMassSetBox(&m,1.f,shape.box.m_halfsize.x*2.f,shape.box.m_halfsize.y*2.f,shape.box.m_half
size.z*2.f);
dMassAdjust(&m,mass);
Fmatrix box_transform;
shape.box.xform_get(box_transform);
PHDynamicData::FMX33toDMX(shape.box.m_rotate,DMatx);
dMassRotate(&m,DMatx);
dMassTranslate(&m,shape.box.m_translate.x-mass_center.x,shape.box.m_translate.y-mass_center.y,shape.box.m_translate.z-mass_center.z);
break;
}
case SBoneShape::stSphere :
{
shape.sphere;
dMassSetSphere(&m,1.f,shape.sphere.R);
dMassAdjust(&m,mass);
dMassTranslate(&m,shape.sphere.P.x-mass_center.x,shape.sphere.P.y-mass_center.y,shape.sphere.P.z-mass_center.z);
break;
}


case SBoneShape::stCylinder :
{
const Fvector& pos=shape.cylinder.m_center;
Fvector l;
l.sub(pos,mass_center);
dMassSetCylinder(&m,1.f,2,shape.cylinder.m_radius,shape.cylinder.m_height);
dMassAdjust(&m,mass);
dMatrix3 DMatx;
Fmatrix33 m33;
m33.j.set(shape.cylinder.m_direction);
Fvector::generate_orthonormal_basis(m33.j,m33.k,m33.i);
PHDynamicData::FMX33toDMX(m33,DMatx);
dMassRotate(&m,DMatx);
dMassTranslate(&m,l.x,l.y,l.z);
break;
}

case SBoneShape::stNone :
break;
default: NODEFAULT;
}
PHDynamicData::FMXtoDMX(offset,DMatx);
dMassRotate(&m,DMatx);

Fvector mc;
offset.transform_tiny(mc,mass_center);
//calculate _new mass_center
//new_mc=(m_mass_center*m_mass.mass+mc*mass)/(mass+m_mass.mass)
Fvector tmp1;
tmp1.set(m_mass_center);
tmp1.mul(m_mass.mass);
Fvector tmp2;
tmp2.set(mc);
tmp2.mul(mass);
Fvector new_mc;
new_mc.add(tmp1,tmp2);
new_mc.mul(1.f/(mass+m_mass.mass));
mc.sub(new_mc);
dMassTranslate(&m,mc.x,mc.y,mc.z);
m_mass_center.sub(new_mc);
dMassTranslate(&m_mass,m_mass_center.x,m_mass_center.y,m_mass_center.z);
if(m_fratures_holder)
{
m_fratures_holder->DistributeAdditionalMass(u16(m_geoms.size()-1),m);
}
if(fracture)
{
fracture->MassAddToSecond(m);
}
R_ASSERT2(dMass_valide(&m),"bad bone mass params");
dMassAdd(&m_mass,&m);
R_ASSERT2(dMass_valide(&m),"bad result mass params");
m_mass_center.set(new_mc);
}
NanoBot-AMK
Лучше сделай так. Определи свойство(Fvector) в классе ворон, и далее сделай скриптовый джетор и сетор. У саму реализацию пили на Lua, по мне так проще всего, всегда есть возможность переписать скрипт поведения ворон, так кружатся около трупов, или актора, или там в момент выброса летят в укрытие.
iOrange
Цитата(NanoBot-AMK @ 01.10.2019, 23:45) *
джетор

как это развидеть?
Diesel
Цитата(Дизель @ 02.10.2019, 02:03) *
Упал с крыши в сетевой и вылетел двиг. Это о чём?
[b]R_ASSERT2(dMass_valide(&m),"bad bone mass params");


FATAL ERROR

[error]Expression : _valid( c )
[error]Function : CPhysicsShellHolder::correct_spawn_pos
[error]File : .\PhysicsShellHolder.cpp
[error]Line : 154
[error]Description : object: mp_device_torch model: dynamics\devices\dev_torch_light\dev_torch_light

Я тут понял, что за бяка. Это у меня фонарик в сети глючит. После смерти, спавн модели вылетает?

А ТЧ вариант с воронами зашел нормально. Только они как будут цепляться на выделеном сервере к юзерам? Или они нифига не синхронизируются - это типа они у каждого будут свои?

macron
Цитата(Дизель @ 02.10.2019, 01:26) *
А ТЧ вариант с воронами зашел нормально. Только они как будут цепляться на выделеном сервере к юзерам? Или они нифига не синхронизируются - это типа они у каждого будут свои?
На ТЧ в mp вороны спавнятся только у администратора невыделенного сервера. Чтобы работали и у клиентов, надо им класс в движке менять или где-то там указать, чтобы тоже синхронизировались. Чтобы после спавна не улетали сразу за карту, надо в конфиге angular_speed править, где-то у меня было.

ЗЫ: чайки в ТЧ


ЗЫ: на ЧН/гипердвижке пробовал тоже ворон в mp спавнить - вроде вылетало. Короче, совсем не работало.
Diesel
macron, теперь не будут вылетать.
xroo
Извините за тупой вопрос. Я чот просто смотрю по ссылкам - вижу фигу. Исходники двигла вижу, какие-то либы и тулзы вижу. Исходники левел эдитора есть? И прочих таких же редакторов?
Diesel
xroo, есть - они там. Готовь Борланд.
99% ковырятелей кода и я в том числе ни разу не собирали Эдиторы.
Pavel_Blend
Скачал движок ТЧ 1.0007 от Alpet & KD. Запускаю и он пишет ошибку, что OpenAL32.dll не найден. Копирую эту dll из 1.0006 патча, запускаю игру и в игре вообще нет звука. Как это исправить? Может dll из ТЧ 1.0006 не подходит к этому правленому движку? Если да, то где взять подходящую библиотеку?
xrModder
Цитата(Pavel_Blend @ 05.10.2019, 22:02) *
Скачал движок ТЧ 1.0007 от Alpet & KD. Запускаю и он пишет ошибку, что OpenAL32.dll не найден. Копирую эту dll из 1.0006 патча, запускаю игру и в игре вообще нет звука. Как это исправить? Может dll из ТЧ 1.0006 не подходит к этому правленому движку? Если да, то где взять подходящую библиотеку?

Просто установи вот это https://github.com/xrModder/xrEngine_vs2010...ces/oalinst.exe, потом запусти.
Romann
Цитата(Zagolski @ 20.07.2018, 01:41) *
Так эти я давно для ЗП оптимизировал, в т.ч. и для дх10/11.
Если кому нужно, выложу, да и опишу, что и где в движке править.

Zagolski, залей пжл. для ЗП r3-r4, отражения на воде и лужи с отражениями реализовали уже давно, но до сих пор нету не примера наглядного, не тутора...
Пытался перетянуть с этого репо, получилось завести только на r2, и то как-то не очень то и вышло:
JustChiller
Кто-нибудь фиксил в ЗП в инвентаре на ШФ следующие баги:

* во время переноса из слота в рюкзак иконка оружия растягивается (если наоборот из рюкзака в слот - то всё Ок)
* аддоны на оружии в слотах размещаются немного криво по оси х (если слот вертикальный, как в оригинале)

?

Если да, то может кто подсказать как это поправить? Мб есть ссылка на репозиторий где это пофикшено.
xrModder
Цитата(JustChiller @ 08.10.2019, 21:49) *
Кто-нибудь фиксил в ЗП в инвентаре на ШФ следующие баги:

* во время переноса из слота в рюкзак иконка оружия растягивается (если наоборот из рюкзака в слот - то всё Ок)
* аддоны на оружии в слотах размещаются немного криво по оси х (если слот вертикальный, как в оригинале)

?

Если да, то может кто подсказать как это поправить? Мб есть ссылка на репозиторий где это пофикшено.

Думаю стоит копать в сторону xml-файлов описания элементов UI. Навряд ли это движковый баг.
Zagolski
Подскажите пожалуйста, кто знает, где копать сворачивание игры? У меня со сворачиванием проблемы, то через раз сворачивается, то переключается в маленькое окошко. Уже замучился. Я без понятия, в каком месте копать даже примерно.

Цитата(Romann @ 08.10.2019, 07:23) *
залей пжл. для ЗП r3-r4, отражения на воде

У меня этих отражений давно не осталось. Я их Дизелю скидывал, он их где-то тут выкладывал, кажется в соседней теме по графике. Они не слишком качественные, поэтому я от них отказался. А нынешняя моя реализация не доделана, там еще косметику наводить (дыры заполнять).
JustChiller
Цитата(xrModder @ 08.10.2019, 19:02) *
Цитата(JustChiller @ 08.10.2019, 21:49) *
Кто-нибудь фиксил в ЗП в инвентаре на ШФ следующие баги:

* во время переноса из слота в рюкзак иконка оружия растягивается (если наоборот из рюкзака в слот - то всё Ок)
* аддоны на оружии в слотах размещаются немного криво по оси х (если слот вертикальный, как в оригинале)

?

Если да, то может кто подсказать как это поправить? Мб есть ссылка на репозиторий где это пофикшено.

Думаю стоит копать в сторону xml-файлов описания элементов UI. Навряд ли это движковый баг.


Нет, это движковое. Второй баг удалось пофиксить, в CUIWeaponCellItem::InitAddon() нужно изменить:

Код
new_offset.x        = addon_offset.y*base_scale.x;
на
Код
new_offset.x        = addon_offset.y*base_scale.y;


Первый баг пока не удалось пофиксить, но он очевидно он тоже в этом методе. Эти баги, кстати, как я понял ещё с ТЧ тянутся)
Shoкer
JustChiller, https://github.com/ShokerStlk/xray-16-SWM/c...c4592506fc1ffab

По второму багу.

В первом вроде как просто xml поправить нужно, не уверен но у себя правил. Глянь коммит.
mortan
Zagolski, если я не ошибаюсь, то за всё это отвечает win api или обёртка вокруг него - мы лишь можем перехватывать команду и отработать её по своему. В движке xray вроде бы всё это дело в message_loop, в OXR точно, только там обёртка в виде SDL еще. SW_MINIMIZE вроде бы то что тебе нужно. Ну и SW_RESTORE - разворачивание окна.
Zagolski
Цитата(mortan @ 09.10.2019, 03:55) *
SW_MINIMIZE вроде бы то что тебе нужно. Ну и SW_RESTORE - разворачивание окна.

Да, там в OnAppActivate они. С первого взгляда вроде все корректно работает под отладчиком. Но все перекопал, ничего не помогает. Уже грешу на что-то другое, может UI или ui-конфиги. Там что интересно, игра сворачивается в маленькое окно (где-то 300х300), только если из меню сворачивать или вообще до первой загрузки игры. Причем при сворачивании игра из полного экрана преобразуется в маленькое, но оно не сворачивается, так и остается висеть. А вернуть все обратно можно, только если переключить в оконный и обратно. Откуда вообще эти данные 300х300 для окна берутся? Ерунда какая-то. Это у меня всплыло, когда я ванильный ТЧ рендер R2 переписал на R4 (без вывода в абстрактные классы). На ТЧ движке.
mortan
Zagolski, сейчас такая же проблема у НП, если во время запуска куда-нибудь кликнуть то игра запускается в маленьком окошке, помогает изменение любой настройки туда-сюда.
Zagolski
А что за НП?
mortan
Zagolski, Новый Проект, мод на базе улучшенного двигла лост альфы, или рентген-луч как его называют)
Xottab_DUTY
Помнится, где-то на этом форуме Загольский замечал, что реализация тени ГГ от КД на динамике несколько не оптимизирована, т.к. несколько раз рендеринг происходит.

Кому интересно, этот момент я поправил и теперь тень ГГ что на статике, что на динамике использует одну и ту же функцию для рендера (унификация) и вызывается только один раз. (оптимизация) smile.gif
Коммит: https://github.com/OpenXRay/xray-16/commit/...f8a73658b2ab3fd
Там же и убрал консольную команду включения/выключения тени от ГГ, чтобы рендерилась всегда. Это не очень хорошо когда на R1 тень есть всегда, а на R2+ её можно выключить unsure.gif
опциональный вампир biggrin.gif

Для вставки в оригинальный движок надо заменить GEnv.CurrentRenderer на g_current_renderer, а GEnv.Render на ::Render (и два двоеточия тоже нужны!)
xrModder
Цитата(Xottab_DUTY @ 12.10.2019, 19:10) *
Для вставки в оригинальный движок надо заменить GEnv.CurrentRenderer на g_current_renderer, а GEnv.Render на ::Render (и два двоеточия тоже нужны!)

Откуда взять cascade_ind?
DiaWorld
Цитата(mortan @ 11.10.2019, 20:00) *
Zagolski, сейчас такая же проблема у НП, если во время запуска куда-нибудь кликнуть то игра запускается в маленьком окошке, помогает изменение любой настройки туда-сюда.

Кста поддерживаю, я в зп с этим неприятным багом сталкивался именно со включенным 10/11 директом :/
Zagolski
Цитата(DiaWorld @ 12.10.2019, 20:49) *
Кста поддерживаю, я в зп с этим неприятным багом сталкивался именно со включенным 10/11 директом :/

На оригинальном ЗП движке?
dPlayer
Цитата(Zagolski @ 13.10.2019, 01:11) *
На оригинальном ЗП движке?

Сталкивался с такой фигней и на орижинал зп и на чн на 10-11дх.
Карлан
Цитата(DiaWorld @ 12.10.2019, 21:49) *
Цитата(mortan @ 11.10.2019, 20:00) *
Zagolski, сейчас такая же проблема у НП, если во время запуска куда-нибудь кликнуть то игра запускается в маленьком окошке, помогает изменение любой настройки туда-сюда.

Кста поддерживаю, я в зп с этим неприятным багом сталкивался именно со включенным 10/11 директом :/

Совершенно верно. Эта проблема еще ЧНовского рендера.

Цитата(mortan @ 11.10.2019, 21:00) *
Zagolski, сейчас такая же проблема у НП, если во время запуска куда-нибудь кликнуть то игра запускается в маленьком окошке, помогает изменение любой настройки туда-сюда.

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

Цитата(Zagolski @ 11.10.2019, 20:18) *
Цитата(mortan @ 09.10.2019, 03:55) *
SW_MINIMIZE вроде бы то что тебе нужно. Ну и SW_RESTORE - разворачивание окна.

Да, там в OnAppActivate они. С первого взгляда вроде все корректно работает под отладчиком. Но все перекопал, ничего не помогает. Уже грешу на что-то другое, может UI или ui-конфиги. Там что интересно, игра сворачивается в маленькое окно (где-то 300х300), только если из меню сворачивать или вообще до первой загрузки игры. Причем при сворачивании игра из полного экрана преобразуется в маленькое, но оно не сворачивается, так и остается висеть. А вернуть все обратно можно, только если переключить в оконный и обратно. Откуда вообще эти данные 300х300 для окна берутся? Ерунда какая-то. Это у меня всплыло, когда я ванильный ТЧ рендер R2 переписал на R4 (без вывода в абстрактные классы). На ТЧ движке.

Артем бьет в бубен, и я здесь smile.gif. Как я тебе и писал где-то полтора месяца назад, проблема в том, что в ЧН/ЗП класс CHW написан с ошибками. В ЧН вообще катастрофические ошибки допущены, которые описаны в литературе о проектировании рендера (не только в CHW, но и в других местах). Для корректной реализации рендера я бы рекомендовал написать этот класс самостоятельно, и, возможно, для удобства с использованием CX (получишь автоматическую работу с памятью, ну и просто удобно работать с разными версиями DX11 (например DX11.0/DX11.4 в одном месте через метод As впиливаешь)). У тебя рендер сделан примерно как у меня по проектированию, так что у тебя еще есть проблемы с самой системой работы классов движка, это как бы скилом тащится, у меня с того момента как я клиент-сервер копал куча опыта осталась, в частности по тому, как все классы устроены и взаимосвязаны. В рамках Prosectors я это все переделываю. Конкретно эта проблема связана со свопчейном DXGI.

Еще один забавный момент, что даже нормальную аппаратную вертикалку не сделать на том рендере, который в оригинале ЧН/ЗП, там бампать надо некоторые компоненты, иначе костылями.

Готовое решение я бы выложил, да копирайтов херов как дров - во-первых, во-вторых какой-нибудь очередной мудак из очередного огср подметет, а потом меня же обвинит, что я все украл. Так что пожалуй воздержусь, информации я дал вроде достаточно, делается быстро, а в диретыксе ты шаришь.

Xottab_DUTY
xrModder, ниоткуда. В ТЧ его нет. Просто пропусти этот кусочек кода.
Zagolski
Цитата(Карлан @ 12.10.2019, 23:40) *
Конкретно эта проблема связана со свопчейном DXGI.

И на этом спасибо. Хотя странно ведь, у меня рядом лежит движок, в котором я тоже ТЧ на ЗП переделывал, но там я переносил все как в ЗП через фабрику, тупо копипастой. И там никаких проблем со сворачиванием нет вообще. Лишь иной раз в оконном режиме окно инициализируется не слишком ровно, смещенным в сторону. А в остальном порядок.
А сейчас каждый запуск проблемы, если из меню свернуть игру - косяк. Разрешение там 640х480, это по дефолту в CRenderDevice::Initialize выставляется. Да и что у меня примечательно, так после первого резета становится все нормально со сворачиванием. О как.
macron
Цитата(Zagolski @ 13.10.2019, 05:43) *
Цитата(Карлан @ 12.10.2019, 23:40) *
Конкретно эта проблема связана со свопчейном DXGI.

Кстати, в ЧН/Гипердвижке с dx-10 рендером баги тоже есть. Лечил:

1. Подстановкой в bin старых dx10/dxgi-дллей. Там косяки связаны с Микрософтом, что новые dx10-длли в семерке глючат со старыми dx10-играми типа ЧН/ЗП/GTA4. У меня без них шли постоянные вылеты по рендеру.
https://yadi.sk/d/xew4TBkwnA8OpA

2. Двойным выполнением команды vid_restart. Прописал в ui_main_menu.script в функцию function main_menu:__init() super()
Цитата
function main_menu:__init() super()
if not level.present() then
get_console():execute("vid_restart")
get_console():execute("vid_restart")
end
DiaWorld
Цитата(Zagolski @ 12.10.2019, 23:11) *
Цитата(DiaWorld @ 12.10.2019, 20:49) *
Кста поддерживаю, я в зп с этим неприятным багом сталкивался именно со включенным 10/11 директом :/

На оригинальном ЗП движке?

Да, в оригинальном чн тоже самое кстати было
xrModder
Цитата(Xottab_DUTY @ 13.10.2019, 08:14) *
xrModder, ниоткуда. В ТЧ его нет. Просто пропусти этот кусочек кода

g_current_render тоже забыл...
Xottab_DUTY
xrModder, а я думал, что там он точно есть... Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))
RayTwitty
Цитата(Xottab_DUTY @ 13.10.2019, 16:37) *
Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))

Может тогда сразу if (psDeviceFlags.test(rsR1))
Dezowawe
Привет всем с толкнулся с проблемой сборки исходников от xrModder игра вылетает с логом
stack trace:

0023:6CA329C5 xrParticles.dll, PAPI::ParticleEffect::Add(), e:\x-ray engine\xrengine\sources\xrparticles\particle_effect.h, 76
0023:6CA3BCA2 xrParticles.dll, PAPI::PASource::Execute(), e:\x-ray engine\xrengine\sources\xrparticles\particle_actions_collection.cpp, 1407
0023:6A793B4D xrRender_R1.dll, PS::CParticleEffect::OnFrame(), e:\x-ray engine\xrengine\sources\xrrender\particleeffect.cpp, 111
0023:6A78FDE4 xrRender_R1.dll, PS::CParticleGroup::SItem::OnFrame(), e:\x-ray engine\xrengine\sources\xrrender\particlegroup.cpp, 278
0023:6A790576 xrRender_R1.dll, PS::CParticleGroup::OnFrame(), e:\x-ray engine\xrengine\sources\xrrender\particlegroup.cpp, 405
0023:55F997F7 xrGame.dll, CParticlesObject::PerformAllTheWork(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\particlesobject.cpp, 185
0023:55F9998B xrGame.dll, CParticlesObject::Play(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\particlesobject.cpp, 126
0023:55FBBA92 xrGame.dll, CCustomZone::PlayIdleParticles(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\customzone.cpp, 699
0023:55FBE93B xrGame.dll, CCustomZone::net_Spawn(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\customzone.cpp, 364
0023:56145DC5 xrGame.dll, CLevel::g_sv_Spawn(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level_network_spawn.cpp, 108
0023:56146117 xrGame.dll, CLevel::cl_Process_Spawn(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level_network_spawn.cpp, 40
0023:56025219 xrGame.dll, CLevel::ProcessGameEvents(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level.cpp, 420
0023:56025ADB xrGame.dll, CLevel::OnFrame(), e:\x-ray engine\xrengine\sources\xrengine\xrgame\level.cpp, 480
0023:00351C9E xrEngine.exe, CRegistrator<pureFrame>::Process(), e:\x-ray engine\xrengine\sources\xrengine\pure.h, 77
0023:00392979 xrEngine.exe, CRenderDevice::FrameMove(), e:\x-ray engine\xrengine\sources\xrengine\device.cpp, 359
0023:00392E53 xrEngine.exe, CRenderDevice::Run(), e:\x-ray engine\xrengine\sources\xrengine\device.cpp, 226
0023:003BC755 xrEngine.exe, Startup(), e:\x-ray engine\xrengine\sources\xrengine\x_ray.cpp, 266
0023:003BCD47 xrEngine.exe, WinMain_impl(), e:\x-ray engine\xrengine\sources\xrengine\x_ray.cpp, 683
0023:003BCEC7 xrEngine.exe, WinMain(), e:\x-ray engine\xrengine\sources\xrengine\x_ray.cpp, 743
0023:0036B353 xrEngine.exe, __tmainCRTStartup(), f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c, 547
0023:75B4344D kernel32.dll, BaseThreadInitThunk()
0023:77489802 ntdll.dll, RtlInitializeExceptionChain()
0023:774897D5 ntdll.dll, RtlInitializeExceptionChain()
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.