Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Закрома Родины
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
nikita_nz1986
Поделится ли кто нибудь дебаг движком чистого неба?Я конечно могу и сам собрать, но там пишет ошибку что то связанное с HW И R, короче вылетает.
Заранее спасибо.
nikita_nz1986
Цитата(Shadows @ 20.07.2015, 19:37) *
А никто не чинил трассеры на первом рендере? Есть инфа, что их сломали после 5 патча... Хотя я сравнивал код 7-ого и дорелизного - разницы нет.

ТЧ. Хотя, баг скорее всего остался и в ЧН\ЗП.

А есть исходники дорелизного?
MegaNub
А SVN (или что они там используют в качестве VCS) сервер ПЫС доступен извне (бредово конечно) или он только в пределах ЛВС ПЫС?
Tron
Обычно такие вещи в интернет не шарят
Да и офис же новый-не думаю,что они воткнули старые харды
RayTwitty
QUOTE (nikita_nz1986 @ 21.07.2015, 10:49) *
А есть исходники дорелизного?

Я сравнивал код трассеров и вообще всех пуль - не отличается от версии за январь 2007 года (дорелизные сырцы). Так что дело либо в рендере\шейдерах, либо того хуже - в каких-то обновах системы\драйверов.
User_X.A.R26
Цитата(MegaNub @ 22.07.2015, 11:45) *
А SVN (или что они там используют в качестве VCS)
Вроде они юзали Visual SourceSafe и CVS (второе скорее всего потом уже заменили на SVN)
MegaNub
Цитата(Tron @ 22.07.2015, 12:02) *
Обычно такие вещи в интернет не шарят

Да, это по здравому смыслу. Но истории с Valve заставляют думать иначе.
-StalkMen-
Обнаружил странный баг в VS 2013.
Если в настройках проекта поставить "Формат отладочной информации: Нет", то при нажатии "собрать", будет всегда перестроение o_O.gif

Бывает ещё одна странность, которую я ещё не решил, опять таки если собирать собранный проект
Пример
Не ОК

Ок

Это мешает не так сильно, но всё равно неприятно sad.gif

Кто нибудь сталкивался с таким?
RedMagic
-StalkMen-, не понял в чем проблема, проект собирается, остальное не важно biggrin.gif
-StalkMen-
STALKER2011x,
Больше КДП - больше нового кода - больше жуков laugh.gif
Tron
Цитата(MegaNub @ 22.07.2015, 21:22) *
Цитата(Tron @ 22.07.2015, 12:02) *
Обычно такие вещи в интернет не шарят

Да, это по здравому смыслу. Но истории с Valve заставляют думать иначе.

Как я понял,он смог получить доступ к машине разработчика,и через нее сделал дамп сорцов
cjayho
QUOTE (MegaNub @ 22.07.2015, 09:45) *
А SVN (или что они там используют в качестве VCS) сервер ПЫС доступен извне (бредово конечно) или он только в пределах ЛВС ПЫС?


"Подайте пару пулек. Одну пульку! Не дайте подохнуть бывшему системному администратору..." (с) Метро2033.
stalker_inside
Цитата(MegaNub @ 22.07.2015, 22:22) *
Цитата(Tron @ 22.07.2015, 12:02) *
Обычно такие вещи в интернет не шарят

Да, это по здравому смыслу. Но истории с Valve заставляют думать иначе.

+ истории с сурсами ArmA III/II, DayZ, Source Engine 2007 (+игры), CryEngine 3, Unigine, Unreal Engine (ранние версии первого движка + UE3) и т.д.

Как-то слишком часто сливают исходники...
MegaNub
Цитата(Tron @ 23.07.2015, 12:11) *
Как я понял,он смог получить доступ к машине разработчика,и через нее сделал дамп сорцов

Да, значит какая-то машина была в доступе из вне. А как же товарищи из Dezowave сливали репо (или его ветки) с сорцами X-Ray? Или это просходило как-то иначе?

Цитата(stalker_inside @ 23.07.2015, 14:58) *
Source Engine 2007 (+игры), CryEngine 3, Unigine, Unreal Engine 3

Слил это вообще один человек, некий Adamix, или просто всё собрал и слил. На китайских сайтах много чего интересного порой неожиданно находится, может он всё это это добро там отыскал.
Neo][
Цитата(MegaNub @ 23.07.2015, 16:00) *
Да, значит какая-то машина была в доступе из вне. А как же товарищи из Dezowave сливали репо (или его ветки) с сорцами X-Ray? Или это просходило как-то иначе?

MegaNub, у пыс на сервере с фтп-шкой было много всего, начиная от билдов для прессы и заканчивая дырявыми сервисами.
hi_flyer
Neo][,
А билдосорцев не было случайно?
MegaNub
Цитата(Neo][ @ 23.07.2015, 18:47) *

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

А можно по подробнее? smile.gif
nikita_nz1986
Решено.
macron
Цитата(MegaNub @ 23.07.2015, 19:52) *
А можно по подробнее?

Как-бы на фтпшнике часть файлов/папок типа патчей официально открыта для доступа, а часть тоже доступна, но не видна. То есть, зная точное назнание файла и забив такую ссылку в коммандер или браузер, можно было его скачать. "Избранные" каким-то образом узнавали и качали. Говорили, что подобрали случайно. wink.gif
MegaNub
Цитата(macron @ 23.07.2015, 20:51) *
Говорили, что подобрали случайно. wink.gif

Ага случайно. Возвращаясь к вопросу сорцев и Dezowave, вот для них специально положили архив на фтп с сорцами, да ещё и с логами клиента VCS, играйтесь, господа.
RayTwitty
QUOTE (MegaNub @ 23.07.2015, 20:31) *
Возвращаясь к вопросу сорцев и Dezowave, вот для них специально положили архив на фтп с сорцами, да ещё и с логами клиента VCS, играйтесь, господа.

Судя по коду ЛА, они скорее всего не использовали билдовские исходники. Ибо многие вещи сделаны не так, как они были сделаны раньше. Проще говоря - практически всё самопал.
Лохотрон
Цитата(MegaNub @ 23.07.2015, 21:31) *
Цитата(macron @ 23.07.2015, 20:51) *
Говорили, что подобрали случайно. wink.gif

Ага случайно. Возвращаясь к вопросу сорцев и Dezowave, вот для них специально положили архив на фтп с сорцами, да ещё и с логами клиента VCS, играйтесь, господа.

В далеком 2007-2008 кое-что было взломано одним знакомым и стащено, но не сорцы сталкера, а некоторые билды и материалы, в том числе и по казакам, а потом появились связи, стали друзьями(хотя еще до этого помоему), и за так отдали/подарили, ну с нда на зп было дело, да. Большинство материалов было достано именно по знакомству.
MegaNub
Цитата(Loxotron @ 23.07.2015, 22:34) *
по знакомству.

Интересно, как обретают такие интересные знакомства.. Хотя, это уже совсем странный вопрос.

Сломал фтп ПЫС? Ссылки до сих пор сохранили или уже давно потёрли файлы?
Лохотрон
Цитата(MegaNub @ 23.07.2015, 23:51) *
Цитата(Loxotron @ 23.07.2015, 22:34) *
по знакомству.

Интересно, как обретают такие интересные знакомства.. Хотя, это уже совсем странный вопрос.

явно не то, что ты подумал. smile.gif гугл, поиск по спискам контактов в компании, периодическое доставание в аське.

Цитата(MegaNub @ 23.07.2015, 23:51) *
Сломал фтп ПЫС? Ссылки до сих пор сохранили или уже давно потёрли файлы?

Было два взлома, один в 2007-2008, группа называлась stalker underground и была из трёх человек, вторичный в 2009 с остатками группы о котором фактически никто не знает. Ломал не я лично, просто так сложилось, что был знаком и в теме... были дыры на многих серверах gsc - анубис, сфинкс, мемфис, аврора... давно дело было, детали уже не помню, один из серверов имел доступ к их локалке. Второй взлом был основан на первом - были подобраны пароли пользователей с хэшей md5, которые подошли к мейл серверу разработчиков, и оттуда письма уходили на отдельный ящик гмэйл и там складировались... впоследствии тот ящик был затерт с письмами по соответствующей просьбе. Пока достаточно.)
MegaNub
Цитата(Loxotron @ 23.07.2015, 23:53) *
явно не то, что ты подумал. smile.gif

Ничего плохого rolleyes.gif

Цитата(Loxotron)
гугл, поиск по спискам контактов в компании, периодическое доставание в аське.

Штурм аськи помог? Общительные однако, да ещё и шедрые, ну прям ангелы.
ZergO
Помогите, пожалуйста, найти причину проблемы. Скомпилировал ЧН из репозитория Flammable. На статическом освещении при включении фонарика вот такие баги, со жгучим пухом то же самое, еще партиклы менее прозрачные, чем должны быть. Вроде такое в Лост Альфе было, до какого-то патча.
DXSDK пробовал и March 2008 и June 2010 - без разницы. VS2013.
RedMagic
Цитата(Loxotron @ 23.07.2015, 22:53) *
Было два взлома, один в 2007-2008, группа называлась stalker underground и была из трёх человек, вторичный в 2009 с остатками группы о котором фактически никто не знает. Ломал не я лично, просто так сложилось, что был знаком и в теме... были дыры на многих серверах gsc - анубис, сфинкс, мемфис, аврора... давно дело было, детали уже не помню, один из серверов имел доступ к их локалке. Второй взлом был основан на первом - были подобраны пароли пользователей с хэшей md5, которые подошли к мейл серверу разработчиков, и оттуда письма уходили на отдельный ящик гмэйл и там складировались... впоследствии тот ящик был затерт с письмами по соответствующей просьбе. Пока достаточно.)

Скандалы, интриги, расследования...
Было бы неплохо запилить статью по этой теме, вроде этой: Как была украдена Half-Life 2
nikita_nz1986
С чем это может быть связано?
Вылет

0023:77BFB75D xrRender_R2.dll, CRenderTarget::prepare_simple_quad(), x:\layers\xrrenderpc_r2\r2_rendertarget_common.cpp, 31
0023:77BFB5C7 xrRender_R2.dll, CRenderTarget::render_simple_quad(), x:\layers\xrrenderpc_r2\r2_rendertarget_common.cpp, 50
0023:77BFBC79 xrRender_R2.dll, CRenderTarget::phase_wet_reflections(), x:\layers\xrrenderpc_r2\r2_rendertarget_phase_wet_reflections.cpp, 26
0023:77C4E345 xrRender_R2.dll, CRenderTarget::phase_combine(), x:\layers\xrrenderpc_r2\r2_rendertarget_phase_combine.cpp, 239
0023:77C059C5 xrRender_R2.dll, CRender::Render(), x:\layers\xrrenderpc_r2\r2_r_render.cpp, 433
0023:0FDE1EF9 xrGame.dll, CDialogHolder::shedule_Needed()
0023:7750C0E4 xrCore.dll, `dynamic atexit destructor for 'g_cBeforeAndAfter''()

FATAL ERROR

[error]exp​ression : error handler is invoked!
[error]Function : invalid_parameter_handler
[error]File : xrDebugNew.cpp
[error]Line : 793
[error]Description :


stack trace:

0023:77502DC4 xrCore.dll, invalid_parameter_handler(), x:\xrcore\xrdebugnew.cpp, 806
0023:68994654 MSVCR120.dll
0023:6896CE9B MSVCR120.dll
0023:77D02105 BugTrap.dll, CSymEngine::GetNextStackTraceEntry(), x:\3rd party\bugtrap\bugtrap\symengine.cpp, 2739
0023:77D00B9E BugTrap.dll, CSymEngine::GetNextWin32StackTraceString(), x:\3rd party\bugtrap\bugtrap\symengine.cpp, 1291
0023:77CFF5CF BugTrap.dll, CSymEngine::GetWin32StackTrace(), x:\3rd party\bugtrap\bugtrap\symengine.cpp, 1652
0023:77D013C5 BugTrap.dll, CSymEngine::GetErrorLog(), x:\3rd party\bugtrap\bugtrap\symengine.cpp, 2095
0023:77D01DB8 BugTrap.dll, CSymEngine::WriteLog(), x:\3rd party\bugtrap\bugtrap\symengine.cpp, 2674
0023:77D01CBD BugTrap.dll, CSymEngine::WriteReportFiles(), x:\3rd party\bugtrap\bugtrap\symengine.cpp, 2534
0023:77D01C03 BugTrap.dll, CSymEngine::WriteReportArchive(), x:\3rd party\bugtrap\bugtrap\symengine.cpp, 2632
0023:77D079E9 BugTrap.dll, BT_MakeSnapshot(), x:\3rd party\bugtrap\bugtrap\bugtrap.cpp, 1969
0023:7750356B xrCore.dll, PreErrorHandler(), x:\xrcore\xrdebugnew.cpp, 363
0023:77D07E37 BugTrap.dll, HandleException(), x:\3rd party\bugtrap\bugtrap\bugtrap.cpp, 276
0023:77D07EBD BugTrap.dll, GenericFilter(), x:\3rd party\bugtrap\bugtrap\bugtrap.cpp, 314
0023:77D07A14 BugTrap.dll, BT_SehFilter(), x:\3rd party\bugtrap\bugtrap\bugtrap.cpp, 494
0023:77502F94 xrCore.dll, UnhandledFilter(), x:\xrcore\xrdebugnew.cpp, 662
0023:77502E0A xrCore.dll, UnhandledFilter(), x:\xrcore\xrdebugnew.cpp, 590
0023:74E5030B kernel32.dll

С Божьей помощью вылет исчез после того как я заблокировал строки в r2_rendertarget_phase_wet_reflections.cpp вот так:
Строки

void CRenderTarget::phase_wet_reflections ()
{
if (!g_pGameLevel) return;
// phase_rain ();
/* float factor = g_pGamePersistent->Environment().CurrentEnv.rain_density;
if (factor<EPS_L) return;*/
// if (rain_params.x<EPS_L) return;
if (ps_r2_ls_flags.test(R2FLAG_WET_SURFACES))
{
/* render_simple_quad (rt_reflections, s_reflections->E[0], 1.0);
render_simple_quad (rt_Generic_0, s_reflections->E[1], 1.0);
/* RCache.set_c ("blur_params", ps_r2_blur_params.x, ps_r2_blur_params.y + 0.01, ps_r2_blur_params.z/ps_r2_blur_params.y, (ps_r2_blur_params.x - 0.1)/ps_r2_blur_params.y);
render_quad_simple (rt_blur_temp, s_reflections->E[3], 1.0);
RCache.set_c ("blur_params", ps_r2_blur_params.x, ps_r2_blur_params.y + 0.01, ps_r2_blur_params.z/ps_r2_blur_params.y, (ps_r2_blur_params.x - 0.1)/ps_r2_blur_params.y);
render_quad_simple (rt_rain, s_reflections->E[4], 1.0);*/
}
/* render_simple_quad (rt_Generic_0, s_reflections->E[2], 1.0);*/
}

Было

void CRenderTarget::phase_wet_reflections ()
{
if (!g_pGameLevel) return;
// phase_rain ();
/* float factor = g_pGamePersistent->Environment().CurrentEnv.rain_density;
if (factor<EPS_L) return;*/
// if (rain_params.x<EPS_L) return;
if (ps_r2_ls_flags.test(R2FLAG_WET_SURFACES))
{
render_simple_quad (rt_reflections, s_reflections->E[0], 1.0);
render_simple_quad (rt_Generic_0, s_reflections->E[1], 1.0);
/* RCache.set_c ("blur_params", ps_r2_blur_params.x, ps_r2_blur_params.y + 0.01, ps_r2_blur_params.z/ps_r2_blur_params.y, (ps_r2_blur_params.x - 0.1)/ps_r2_blur_params.y);
render_quad_simple (rt_blur_temp, s_reflections->E[3], 1.0);
RCache.set_c ("blur_params", ps_r2_blur_params.x, ps_r2_blur_params.y + 0.01, ps_r2_blur_params.z/ps_r2_blur_params.y, (ps_r2_blur_params.x - 0.1)/ps_r2_blur_params.y);
render_quad_simple (rt_rain, s_reflections->E[4], 1.0);*/
}
render_simple_quad (rt_Generic_0, s_reflections->E[2], 1.0);
}
abramcumner
Цитата(nikita_nz1986 @ 24.07.2015, 10:10) *
0023:77BFBC79 xrRender_R2.dll, CRenderTarget::phase_wet_reflections(), x:\layers\xrrenderpc_r2\r2_rendertarget_phase_wet_reflections.cpp, 26

Я бы сказал с намоканием.
Включи остановку при выбросе исключения - узнаешь больше информации.
cjayho
QUOTE (Shadows @ 23.07.2015, 19:33) *
QUOTE (MegaNub @ 23.07.2015, 20:31) *
Возвращаясь к вопросу сорцев и Dezowave, вот для них специально положили архив на фтп с сорцами, да ещё и с логами клиента VCS, играйтесь, господа.

Судя по коду ЛА, они скорее всего не использовали билдовские исходники. Ибо многие вещи сделаны не так, как они были сделаны раньше. Проще говоря - практически всё самопал.


Подтверждаю - не использовали билдосорцы. У нас их просто нет и не было.
nikita_nz1986
Люди помогите:последнее время игра перестала включаться, запускаю батник секунды 3 темное окошко, а потом снова ничего, пытался удалить user.ltx запускается, работает, но как установлю все настройки выйду и запущу снова та же система, помогите.
stalker_inside
Цитата(MegaNub @ 23.07.2015, 16:00) *
Цитата(Tron @ 23.07.2015, 12:11) *
Как я понял,он смог получить доступ к машине разработчика,и через нее сделал дамп сорцов

Да, значит какая-то машина была в доступе из вне. А как же товарищи из Dezowave сливали репо (или его ветки) с сорцами X-Ray? Или это просходило как-то иначе?

Цитата(stalker_inside @ 23.07.2015, 14:58) *
Source Engine 2007 (+игры), CryEngine 3, Unigine, Unreal Engine 3

Слил это вообще один человек, некий Adamix, или просто всё собрал и слил. На китайских сайтах много чего интересного порой неожиданно находится, может он всё это это добро там отыскал.

Собрал, захотел продать, и ЕГО ФТП взломали. Он, кстати, даже не скрывается - город и фотографии доступны на его странице ВК. Недавно (после сливов) хвалился, что у него сурсы сталкера есть smile.gif
MegaNub
Цитата(stalker_inside @ 25.07.2015, 02:45) *
Собрал, захотел продать, и ЕГО ФТП взломали. Он, кстати, даже не скрывается - город и фотографии доступны на его странице ВК.

Да, именно так, ему на сервак был залит шелл..

Цитата(stalker_inside)
Недавно (после сливов) хвалился, что у него сурсы сталкера есть smile.gif

Это где?
nikita_nz1986
Люди, если это у кого то запустится напишите https://yadi.sk/d/99A9EPIhi5aNJ.
Это для чн.
Tron
Цитата(stalker_inside @ 23.07.2015, 13:58) *
+ истории с сурсами ArmA III/II, DayZ, Source Engine 2007 (+игры), CryEngine 3, Unigine, Unreal Engine (ранние версии первого движка + UE3) и т.д.
Как-то слишком часто сливают исходники...

Это лики из компаний лицензиатов, не из самих Epic и т.д

read

Цитата
Собрал, захотел продать, и ЕГО ФТП взломали. Он, кстати, даже не скрывается - город и фотографии доступны на его странице ВК. Недавно (после сливов) хвалился, что у него сурсы сталкера есть



У нас с ним общие знакомые(по бете HL), на тот момент(до слива) у него их не было - я бы узнал
stalker_inside
Цитата(MegaNub @ 25.07.2015, 07:58) *
Это где?

Из конфы знакомые цитату скинули
ZergO
Цитата(nikita_nz1986 @ 25.07.2015, 08:03) *
Люди, если это у кого то запустится напишите https://yadi.sk/d/99A9EPIhi5aNJ.
Это для чн.

Запустилось, уровень нормально загрузился.
nikita_nz1986
Цитата(ZergO @ 25.07.2015, 23:21) *
Цитата(nikita_nz1986 @ 25.07.2015, 08:03) *
Люди, если это у кого то запустится напишите https://yadi.sk/d/99A9EPIhi5aNJ.
Это для чн.

Запустилось, уровень нормально загрузился.

Не вылетало, не лагало и фичи работали?
Меня интересует 2-ой рендер.
ZergO
Цитата(nikita_nz1986 @ 26.07.2015, 06:45) *
Цитата(ZergO @ 25.07.2015, 23:21) *
Цитата(nikita_nz1986 @ 25.07.2015, 08:03) *
Люди, если это у кого то запустится напишите https://yadi.sk/d/99A9EPIhi5aNJ.
Это для чн.

Запустилось, уровень нормально загрузился.

Не вылетало, не лагало и фичи работали?
Меня интересует 2-ой рендер.

Не вылетало, работает не хуже оригинала. А что за фичи? Тени от травы работают, а от актора нет. Динамических луж не заметил, хотя в настройках было включено.
nikita_nz1986
Цитата(ZergO @ 26.07.2015, 21:57) *
Цитата(nikita_nz1986 @ 26.07.2015, 06:45) *
Цитата(ZergO @ 25.07.2015, 23:21) *
Цитата(nikita_nz1986 @ 25.07.2015, 08:03) *
Люди, если это у кого то запустится напишите https://yadi.sk/d/99A9EPIhi5aNJ.
Это для чн.

Запустилось, уровень нормально загрузился.

Не вылетало, не лагало и фичи работали?
Меня интересует 2-ой рендер.

Не вылетало, работает не хуже оригинала. А что за фичи? Тени от травы работают, а от актора нет. Динамических луж не заметил, хотя в настройках было включено.

r__actor_shadow on, ну а лужи не доработаны, они есть нужен файл level.puddles.
ZergO
Цитата(nikita_nz1986 @ 26.07.2015, 21:15) *
r__actor_shadow on, ну а лужи не доработаны, они есть нужен файл level.puddles.

Я знаю про консольную команду, не работает тень.
nikita_nz1986
Цитата(ZergO @ 26.07.2015, 23:26) *
Цитата(nikita_nz1986 @ 26.07.2015, 21:15) *
r__actor_shadow on, ну а лужи не доработаны, они есть нужен файл level.puddles.

Я знаю про консольную команду, не работает тень.

Сейчас глянул всё работает.
Но у меня другая ревизия.
Viнt@rь
Никто не в курсе, какой класс отвечал за рендер модели шмотки в инвентаре ГГ в билдах? И сохранился ли код этого класса хотя бы в каких либо сорцах?
Viнt@rь
С классом определился CUI3dStatic, даже есть заголовочный файл, вот cpp кода нет((( Мб у кого есть сорцы билдов каких-то? Пожалуйста, очень нужно.
nikita_nz1986
Цитата(Viнt@rь @ 27.07.2015, 16:26) *
С классом определился CUI3dStatic, даже есть заголовочный файл, вот cpp кода нет((( Мб у кого есть сорцы билдов каких-то? Пожалуйста, очень нужно.

Кто ж тебе их скинет, я б тоже хотел билдовские сорцы.
User_X.A.R26
Viнt@rь, в открытом доступе лежат только сорсы приблизительно билдов 2945 и 2939 (сливал Loxotron). Попробуй глянуть там
Red_Virus
Цитата(Viнt@rь @ 27.07.2015, 15:26) *
С классом определился CUI3dStatic, даже есть заголовочный файл, вот cpp кода нет((( Мб у кого есть сорцы билдов каких-то? Пожалуйста, очень нужно.

Ищи Билл 2215 от Диабло с дебаг инфой(сингл сборка). Далее используй Иду, смотри как реализовано. А код 3д статика был в 18хх билдах.

CODE
class CGameObject;

class CUI3dStatic : public CUIWindow
{
typedef CUIWindow inherited;
private:

public:
CUI3dStatic();
virtual ~ CUI3dStatic();

void SetRotate(float x, float y, float z){m_x_angle = x;
m_y_angle = y;
m_z_angle = z;}

void SetGameObject(CGameObject* pItem);

//прорисовка окна
virtual void Init (float x, float y, float width, float height);
virtual void Draw ();

protected:
float m_x_angle, m_y_angle, m_z_angle;
float dist,viewport_near;
//перевод из координат экрана в координаты той плоскости
//где находиться объект
void FromScreenToItem(int x_screen, int y_screen, float& x_item, float& y_item);

CGameObject* m_pCurrentItem;

};
#include "../gameobject.h"
#include "../HUDManager.h"
#include "../../fbasicvisual.h"
#include "../../device.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CUI3dStatic:: CUI3dStatic()
{
m_x_angle = m_y_angle = m_z_angle = 0;
dist = 0.210; viewport_near = 0.2;
//Enable(false);
}

CUI3dStatic::~ CUI3dStatic()
{

}

//расстояние от камеры до вещи, перед глазами

#define DIST (VIEWPORT_NEAR + 0.1f)

void CUI3dStatic::FromScreenToItem(int x_screen, int y_screen,
float& x_item, float& y_item)
{

int x = x_screen;
int y = y_screen;
//Msg("start FromScreenToItem x_screen-%f y_screen-%f",x,y);

int halfwidth = Device.dwWidth/2;
int halfheight = Device.dwHeight/2;

float size_y = viewport_near * tanf( deg2rad(60.f) * 0.5f);
float size_x = size_y / (Device.fASPECT);

float r_pt = float(x-halfwidth) * size_x / (float) halfwidth;
float u_pt = float(halfheight-y) * size_y / (float) halfheight;

x_item = r_pt * dist / viewport_near;
y_item = u_pt * dist / viewport_near;

//Msg("start FromScreenToItem x_item-%f y_item-%f",x_item,y_item);
}

void CUI3dStatic::Init(float x, float y, float width, float height){

//Msg(" init in CUI3dStatic");
dist = pSettings->r_float("dist_3d_static", "dist");
viewport_near = pSettings->r_float("dist_3d_static", "viewport_near");
inherited::Init(x, y, width, height);
}

//прорисовка
void CUI3dStatic::Draw()
{
if(m_pCurrentItem)
{
//Msg("Start draw 3d model");
Frect rect;
GetAbsoluteRect(rect);

Fmatrix translate_matrix;
translate_matrix.identity();

Fmatrix scale_matrix;
scale_matrix.identity();

Fmatrix rx_m;
rx_m.identity();

Fmatrix ry_m;
ry_m.identity();

Fmatrix rz_m;
rx_m.identity();

Fmatrix matrix;
matrix.identity();

//поместить объект в центр сферы

translate_matrix.translate( - m_pCurrentItem->Visual()->vis.sphere.P.x,
- m_pCurrentItem->Visual()->vis.sphere.P.y,
- m_pCurrentItem->Visual()->vis.sphere.P.z);

matrix.mulA_44(translate_matrix);


rx_m.rotateX(m_x_angle);
ry_m.rotateY(m_y_angle);
rz_m.rotateZ(m_z_angle);
matrix.mulA_44(rx_m);
matrix.mulA_44(ry_m);
matrix.mulA_44(rz_m);



float x1, y1, x2, y2;

FromScreenToItem(rect.left, rect.top, x1, y1);
FromScreenToItem(rect.right, rect.bottom, x2, y2);

float normal_size;
normal_size =_abs(x2-x1)<_abs(y2-y1)?_abs(x2-x1):_abs(y2-y1);


float radius = m_pCurrentItem->Visual()->vis.sphere.R;

float scale = normal_size/(radius*2);


scale_matrix.scale( scale, scale,scale);

matrix.mulA_44(scale_matrix);


float right_item_offset, up_item_offset;


///////////////////////////////

FromScreenToItem(rect.left + iFloor(GetWidth()/2),rect.top + iFloor(GetHeight()/2), right_item_offset, up_item_offset);

translate_matrix.identity();
translate_matrix.translate(right_item_offset,up_item_offset,dist);

matrix.mulA_44(translate_matrix);

Fmatrix camera_matrix;
camera_matrix.identity();
camera_matrix = Device.mView;
camera_matrix.invert();

matrix.mulA_44(camera_matrix);



::Render->set_Transform(&matrix);
::Render->add_Visual(m_pCurrentItem->Visual());

}else{
//Msg("not item for draw");
}

//inherited::Draw ();
}
voidCUI3dStatic::SetGameObject(CGameObject* pItem)
{
m_pCurrentItem = pItem;
//if(m_pCurrentItem){Msg("set item for 3d static");}else{Msg("not set item for 3d static");}
}


Кусок из того что выдрал, работает только на р1
SkyLoader
Цитата(Viнt@rь @ 27.07.2015, 16:26) *
Мб у кого есть сорцы билдов каких-то? Пожалуйста, очень нужно.

http://rusfolder.com/44001419
cpp и h 3д статика за январь 2007 года. Только просто так адаптировать не получится. Там юзаются методы для матриц, которых в релизе нет или они переименованы.
Viнt@rь
Благодарю откликнувшихся, сейчас посмотрим, что тут у нас smile.gif
umad
Цитата(SkyLoader @ 27.07.2015, 23:47) *
Цитата(Viнt@rь @ 27.07.2015, 16:26) *
Мб у кого есть сорцы билдов каких-то? Пожалуйста, очень нужно.

http://rusfolder.com/44001419
cpp и h 3д статика за январь 2007 года. Только просто так адаптировать не получится. Там юзаются методы для матриц, которых в релизе нет или они переименованы.


?? Был же разговор на прошлой странице об отсутствии билдосырцов... Или есть какие-то отдельные куски?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.