Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Saint

Страницы: 1 [2] 3 4 ... 6
16
Общие вопросы / Опкоды 0179 и 023B
« : Март 04, 2020, 11:42:21 pm »
их в Вайсе нету(

https://gtamods.com/wiki/0178
https://gtamods.com/wiki/0179
https://gtamods.com/wiki/023B
https://gtamods.com/wiki/023A

кто может выложить кусок кода из базы от GTA 3, чтобы посмотреть как они устроены для того чтобы реализовать их в вайсе?

17
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 10:13:43 pm »
ладно это другой вопрос, большое спасибо за помощь.

18
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 08:30:59 pm »
так как же мне сделать именно так как надо? есть вариант?
Ну это зависит от твоих целей. Если X 180 Y 180 Z 0 и X 0 Y 0 Z 180 с технической стороны - это одно и то же, почему тебе это не подходит?

я думаю потому что могут возникнуть ошибки в синхронизации Ротации между Клиентами (игроками/играми)
например когда создаётся какой нибуть шлагбаум и мы будем менять только один параметр, ну или в синхронизации объектов с которыми игрок может взаимодействовать, толкать их перемещать и т.д.

19
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 08:20:43 pm »
Ну это не ошибка, а известная проблема углов Эйлера.
Именно поэтому, а также из-за так называемого Gimbal lock в реальных расчетах в 3D юзают кватернионы и матрицы поворота.

так как же мне сделать именно так как надо? есть вариант?

20
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 08:08:55 pm »
разобрался с ошибкой, короче работает, но не совсем верно

в принципе верно, но не совсем

допустим если менять Ротацию по Очереди сначало по X = 90, 180, 270, а Y и Z оставлять = 0
потом меняем только Y
потом только Z

вообщем суть проблемы в чём пололение объекта в пространстве например X 0 Y 0 Z 180
это тоже самое что и X 180 Y 180 Z 0

но если я меняю ротацию объкту на X 0 Y 0 Z 180 показует верно
а если я меняю ротацию на X 180 Y 180 Z 0 то функция мне выдаёт X 0 Y 0 Z 180, а по идеи должно быть X 180 Y 180 Z 0
я знаю что это одно и тоже как бы, но это не одно и тоже  ???

21
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 07:11:16 pm »
да то я немного тупанул, не увидел твой последний ответ (усталость)
Знакомая история) Береги здоровье и сон, чувак!

короче получилась у меня такая функция вот

Код: C++
  1. void CObject::GetObjectRotation(float * fRotX, float * fRotY, float * fRotZ)
  2. {//------------------------------------------------------------------------------------------------------------------------
  3.  
  4.         if (m_pObject) // m_pObject = GamePool_Object_GetAt(m_dwObjectGameID);
  5.         {
  6.                 //ScriptCommand(&get_object_rotation, m_dwObjectGameID, X, Y, Z); // none opcode
  7.  
  8.                 float VehicleRotMatrix[9];
  9.  
  10.         VehicleRotMatrix[0] = m_pObject->physical.entity.placeable.matMatrix.vLookRight.X;
  11.         VehicleRotMatrix[1] = m_pObject->physical.entity.placeable.matMatrix.vLookRight.Y;
  12.         VehicleRotMatrix[2] = m_pObject->physical.entity.placeable.matMatrix.vLookRight.Z;
  13.  
  14.         VehicleRotMatrix[3] = m_pObject->physical.entity.placeable.matMatrix.vLookUp.X;
  15.         VehicleRotMatrix[4] = m_pObject->physical.entity.placeable.matMatrix.vLookUp.Y;
  16.         VehicleRotMatrix[5] = m_pObject->physical.entity.placeable.matMatrix.vLookUp.Z;
  17.  
  18.         VehicleRotMatrix[6] = m_pObject->physical.entity.placeable.matMatrix.vLookAt.X;
  19.         VehicleRotMatrix[7] = m_pObject->physical.entity.placeable.matMatrix.vLookAt.Y;
  20.         VehicleRotMatrix[8] = m_pObject->physical.entity.placeable.matMatrix.vLookAt.Z;
  21.  
  22.         float VehicleAngleXaYaZa[3];
  23.  
  24.         RotationMatrixToEulerianAngle((float *)VehicleRotMatrix, (float *)VehicleAngleXaYaZa);
  25.         EulerianAngleNormalize360((float *)VehicleAngleXaYaZa);
  26.  
  27.         *fRotX = VehicleAngleXaYaZa[0];
  28.         *fRotY = VehicleAngleXaYaZa[1];
  29.         *fRotZ = VehicleAngleXaYaZa[2];
  30.  
  31.         }
  32.  

вот так узнаём

нашу ротацию

Код: C++
  1.         float *fRot[3];
  2.  
  3.         GetObjectRotation(fRot[0], fRot[1], fRot[2]);
  4.  

но при попытке вывода на экран fRot[0], fRot[1], fRot[2] игра вылетает  :(

22
Общие вопросы / Re: Ротация и Матрица
« : Февраль 26, 2020, 06:57:46 pm »
Да, вектором в RW называется последовательность трех значений XYZ. Не всегда это стоит воспринимать как буквально координаты XYZ, просто привыкни, что это 3 значения.

да то я немного тупанул, не увидел твой последний ответ (усталость)

23
Хз, впервые о таком слышу. Советую еще раз проверить идентичность копий игры и их настроек. Речь же не о стим версиях?

нет стимом не пользуюсь и на сколько мне известно в стиме не 1.0

24
Общие вопросы / Re: Ротация и Матрица
« : Февраль 24, 2020, 12:57:15 am »
и как мне это применить к моей матрице?

Код: C++
  1. typedef struct _MATRIX4X4 // RwMatrix struc ; (sizeof=0x40) // 64  байта
  2. {
  3.         VECTOR vLookRight; // 4 + 4 + 4 // 12
  4.         float  pad_r;                                   // 16
  5.  
  6.         VECTOR vLookUp;                                 // 28 // top // Rotation
  7.         float  pad_u;                                   // 32
  8.  
  9.         VECTOR vLookAt;                                 // 44
  10.         float  pad_a;                                   // 48
  11.  
  12.         VECTOR vPos;                                    // 60
  13.         float  pad_p;                                   // 64
  14.  
  15. } MATRIX4X4, *PMATRIX4X4;
  16.  

25
Хмм... проверь тогда целостность и оригинальность particle.cfg. Я именно там убирал капли с экрана.

игра оригинал и там и там, потому что я делаю мультиплеерный мод, может быть дело из-за разных видео карт?
т.к. на старом ПК они есть (пентиум4), а на новом их нету

26
Общие вопросы / Ротация и Матрица
« : Февраль 23, 2020, 11:38:53 pm »
в Игре есть опкоды

0453 установить объекту Ротацию, но нет опкода чтобы её узнать

написал я вот такие функции, но видимо что-то тут не верно у меня, прошу пожалуйста помощи

По оси Z вроде как определяет верно при условии что опкод 0176 (get_object_z_angle) это и есть Ротация по Оси Z

но с X и Y беда(

Код: C++
  1. float CObject::GetObjectRotX() // RC 8-2 T13 // RC 8-3
  2. {//------------------------------------------------------------------------------------------------------------------------
  3.  
  4.         if (m_pObject) // m_pObject = GamePool_Object_GetAt(m_dwObjectGameID);
  5.         {
  6.                 //-----------------------------------------------------------------------------------------------------------------
  7.  
  8.                 float fRotX = atan2(-m_pObject->physical.entity.placeable.matMatrix.vLookAt.X, m_pObject->physical.entity.placeable.matMatrix.vLookAt.Y) * 180.0f/PI;
  9.  
  10.                 // Bound it to [0, 360)
  11.                 while(fRotX < 0.0f)
  12.                         fRotX += 360.0f;
  13.                 while(fRotX >= 360.0f)
  14.                         fRotX -= 360.0f;
  15.                
  16.                 //-----------------------------------------------------------------------------------------------------------------
  17.  
  18.                 return fRotX;
  19.         }
  20.  
  21.         return 0;
  22.  
  23. }//------------------------------------------------------------------------------------------------------------------------
  24.  
  25. float CObject::GetObjectRotY() // RC 8-2 T13 // RC 8-3
  26. {//------------------------------------------------------------------------------------------------------------------------
  27.  
  28.         if (m_pObject) // m_pObject = GamePool_Object_GetAt(m_dwObjectGameID);
  29.         {
  30.                 //-----------------------------------------------------------------------------------------------------------------
  31.  
  32.                 float fRotY = atan2(-m_pObject->physical.entity.placeable.matMatrix.vLookRight.X, m_pObject->physical.entity.placeable.matMatrix.vLookRight.Y) * 180.0f/PI;
  33.  
  34.                 // Bound it to [0, 360)
  35.                 while(fRotY < 0.0f)
  36.                         fRotY += 360.0f;
  37.                 while(fRotY >= 360.0f)
  38.                         fRotY -= 360.0f;
  39.                
  40.                 //-----------------------------------------------------------------------------------------------------------------
  41.  
  42.                 return fRotY;
  43.         }
  44.  
  45.         return 0;
  46.  
  47. }//------------------------------------------------------------------------------------------------------------------------
  48.  
  49. float CObject::GetObjectRotZ() // RC 8-2 T13 // RC 8-3
  50. {//------------------------------------------------------------------------------------------------------------------------
  51.  
  52.         if (m_pObject) // m_pObject = GamePool_Object_GetAt(m_dwObjectGameID);
  53.         {
  54.                 //-----------------------------------------------------------------------------------------------------------------
  55.  
  56.                 float fRotZ = atan2(-m_pObject->physical.entity.placeable.matMatrix.vLookUp.X, m_pObject->physical.entity.placeable.matMatrix.vLookUp.Y) * 180.0f/PI;
  57.  
  58.                 // Bound it to [0, 360)
  59.                 while(fRotZ < 0.0f)
  60.                         fRotZ += 360.0f;
  61.                 while(fRotZ >= 360.0f)
  62.                         fRotZ -= 360.0f;
  63.                
  64.                 //-----------------------------------------------------------------------------------------------------------------
  65.  
  66.                 return fRotZ;
  67.         }
  68.  
  69.         return 0;
  70.  
  71. }//------------------------------------------------------------------------------------------------------------------------
  72.  

27
Кровь, в т.ч. на экране, отсутствует в немецкой и(вроде) французской версиях игр. Возможно, на другом компе у тебя установлена локализация вместо немецкого языка.

нет на обоих ПК игра одинаковая 1.0 английская версия

28
Идеи / Re: Зеркало заднего вида
« : Февраль 23, 2020, 01:24:01 pm »
врятли это исходники именно этого мода, этот мод 2players делал мой товарищ Павел Попов
А где он обитает? Есть в Discord, например?

его ВК https://vk.com/id7501976

29
Общие вопросы / Капли крови и дождя на Экране
« : Февраль 22, 2020, 10:22:55 pm »
в GTA VC они у меня на одном компе есть, а на другом нету(
почему так?

скрин случайный из интернета


30
Идеи / Re: Зеркало заднего вида
« : Февраль 17, 2020, 11:08:35 pm »
Видимо там ответы на все вопросы. Вроде эти исходники https://github.com/gtco-op/vc-coop

врятли это исходники именно этого мода, этот мод 2players делал мой товарищ Павел Попов

Страницы: 1 [2] 3 4 ... 6