Aleksey | Дата: Суббота, 05.01.2013, 12:19 | Сообщение # 136 |
Группа: Пользователи
Сообщений: 3
Статус: Offline
| Давайте ещё вопросики!
Геймдевелопер пришёл )
|
|
| |
BoPoH | Дата: Четверг, 25.07.2013, 00:14 | Сообщение # 137 |
Группа: Проверенные
Сообщений: 53
Статус: Offline
| Aleksey, не по теме, но MaxScript знаешь?
Добавлено (25.07.2013, 00:14) --------------------------------------------- Имеется: Вектор "Top" камеры, позиция камеры, точка в 3D-пространстве.
Вопрос: Как вычислить положение этой точки на экране не применяя никаких игровых функций? Нужно для SA-MP сервера, поэтому нельзя использовать игровые функции.
P.S. Если идей нет - не беда, решу проблему другим способом. Просто я видел такой инклюд для Pawno когда-то давно. Теперь найти его не могу
First-Person mode 85% done Добро всегда побеждает зло. Кто победил, тот и добрый!
Сообщение отредактировал BoPoH - Четверг, 25.07.2013, 00:16 |
|
| |
Den_spb | Дата: Пятница, 26.07.2013, 07:08 | Сообщение # 138 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Цитата (BoPoH) Как вычислить положение этой точки на экране не применяя никаких игровых функций? Через подобные треугольники, как показано на схеме. Угол обзора камеры можно найти опытным путём.
|
|
| |
BoPoH | Дата: Пятница, 30.08.2013, 16:17 | Сообщение # 139 |
Группа: Проверенные
Сообщений: 53
Статус: Offline
| Den_spb, и правда. Как-то сразу не подумал об этом. Спасибо
First-Person mode 85% done Добро всегда побеждает зло. Кто победил, тот и добрый!
|
|
| |
Recoil | Дата: Воскресенье, 08.01.2023, 13:36 | Сообщение # 140 |
Группа: Проверенные
Сообщений: 12
Статус: Offline
| Папа у Васи силен в математике..Стал в базе постоянно натыкаться на подобные формулы. Например, для серчлайта вертолета в CHeli float searchLightDist = (CVector2D(m_fSearchLightX, m_fSearchLightY) - GetPosition()).Magnitude(); if (searchLightDist > 60.0f) m_fSearchLightIntensity = 0.0f; можно конечно тут просто поставить m_fSearchLightIntensity = 0.8f else if (searchLightDist < 40.0f) m_fSearchLightIntensity = 1.0f; else m_fSearchLightIntensity = 1.0f - (40.0f - searchLightDist) / (60.0f-40.0f)
Но хочется дистанцию менять, если поставить вместо 60.0 (0x6C73E1) 120.0, а вместо 40.0 (0x6C7425) 100.0 это работает, но появляется баг, в момент появления вертолета на короткий миг появляется серчлайт, а потом пропадает и появляется вновь уже согласно (searchLightDist > 120.0f).
Сама корона сделана с запасом и включается при появлении серчлайта 0x6C5AE9 200.0 4
Также обратил внимание, что во многих скриптах Junior_Djjr часто пасует в математике, он не асилил CRubbish для Вайс Сити, там формула alpha -= alpha*(camDist-RUBBISH_FADE_DIST)/(RUBBISH_MAX_DIST-RUBBISH_FADE_DIST)
не получается увеличить дальность появления и удаления мусора: листьев, газет.
как известно Пашков отключил light square в Вайсе, все уже привыкли, что параметр выключен, а ведь без них тачки далече фигово выглядят, как без фар, за альфу кубиков фар вблизи отвечает .text:00571CC9 C6 44 24 08 1F mov byte ptr [esp+40h+var_38], 1Fh
те самые bright lights не только для светофоров, но и для кубиков авто, как я понял эта формула отвечает за альфу вдалеке
#define BRIGHTLIGHTS_MAX_DIST (60.0f) // invisible beyond this #define BRIGHTLIGHTS_FADE_DIST (45.0f) // strongest between these two #define CARLIGHTS_MAX_DIST (30.0f) #define CARLIGHTS_FADE_DIST (15.0f) // 31 for close lights
a = 255*(1.0f - (aBrightLights.m_camDist-BRIGHTLIGHTS_FADE_DIST)/(BRIGHTLIGHTS_MAX_DIST-BRIGHTLIGHTS_FADE_DIST));
а эта вблизи
a = 31 + (255-31)*((aBrightLights.m_camDist-CARLIGHTS_FADE_DIST)/(CARLIGHTS_MAX_DIST-CARLIGHTS_FADE_DIST));
Я смутно понимаю как это работает, особенно для Rubbish? Как правильно менять параметры в этих формулах, чтобы не было багов. Есть такой скрипт для СА Enhance ParticleTXD (Junior_Djjr) , в этом Enhance ParticleTXD Джуниор наложал с математикой, отраженные от асфальта короны стопарей, естественно и сами короны, при удалении авто пропадают, потом вновь появляются, я думал это баг игры, думал даже из Вайса переносить, ан нет, это просто Джуниор лажанул. Всем уже все равно? Если не трудно поделитесь инфой, если такая есть.
Сообщение отредактировал Recoil - Воскресенье, 08.01.2023, 13:51 |
|
| |
Den_spb | Дата: Воскресенье, 08.01.2023, 18:22 | Сообщение # 141 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Цитата Recoil ( ) Но хочется дистанцию менять, если поставить вместо 60.0 (0x6C73E1) 120.0, а вместо 40.0 (0x6C7425) 100.0 это работает, но появляется баг, в момент появления вертолета на короткий миг появляется серчлайт, а потом пропадает и появляется вновь уже согласно (searchLightDist > 120.0f). В игре не бывает багов, бывают неожиданные эффекты от того, что кто-то чего-то не учел. Надо посмотреть все функции, вызывающие функцию создания прожектора. Возможно в момент создания вертолета вызывается одна функция, а потом другая. Ты изменил значение только во второй, а в первой - нет (это как одна из возможных версий).
Цитата Recoil ( ) Как правильно менять параметры в этих формулах, чтобы не было багов. Чтобы не было "багов", надо четко понимать что и зачем меняешь, разобраться сначала в смысле вычислений.
Цитата Recoil ( ) Всем уже все равно? У меня базы для VC нет, не работаю с этой игрой, поэтому помочь не смогу.
|
|
| |