Перейти к содержанию

текущий взгляд противника


Рекомендуемые сообщения

пришла идея рисовать линию взгляда противника, скорее всего для этого нужно viewangles, начало линии это viewagles, а конец? как реализовать мою задумку?

игра csgo

Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, JustStudy сказал:

Начало линии это кость головы

Это ему придется искать матрицу костей, думаю будет проще взять вектор позиции глаз.

Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, partoftheworlD сказал:

Это ему придется искать матрицу костей, думаю будет проще взять вектор позиции глаз.

 

А что её там искать, она во всех версиях практически -  0x00002698

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, JustStudy сказал:

 

А что её там искать, она во всех версиях практически -  0x00002698

 

Больше кода писать, проще же считать вектор из структуры.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

хех) я чет не могу понять в чем проблема)) углы правильные, формула вроде тоже, но вывод это линия их головы в 0 0 кординаты окна, хотя косинус и синус вроде верные)

вот кусок кода

private void EyesLine(ScreenVector s)
{

 double kx = 50*  Math.Cos(angles.X);
 double ky = 50 * Math.Sin(angles.X);

  bufferedGraphics.Graphics.DrawLine(new Pen(Color.Green, 2), s.X, s.Y, (float)kx, (float)ky);
}

любой угол дает 0((

Изменено пользователем barsuuk
Ссылка на комментарий
Поделиться на другие сайты

1..Vector3 

2. Тебе надо использовать EntityList, а так ты получается линию из своей головы рисуешь

3.может Math.Sin(angles.Y);?

4.m_angEyeAngles это только точка А, тебе надо найти точку Б

5.Можно использовать внутриигровую функцию которая делает тоже самое, подсказка она в режиме наблюдателя.

Ссылка на комментарий
Поделиться на другие сайты

1)почему vector3 если значений всего 2 верт уголь и горизонт 

2) EntityList я и так использую, получаю структуру каждого игрка

3) angle.Y это горизонт угол 

4) точка А это голова противника,m_angEyeAngles сдесь углы

5) это план б)нужно самому изобрести велосипед

вот ссылка откуда я брал формулу

http://osvita.name/6239/opredelenie-koordinat-tochki-geometriya-9-klass

Изменено пользователем barsuuk
Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, barsuuk сказал:

1)почему vector3 если значений всего 2 верт уголь и горизонт

Это уже я туплю, перепутал с vecEyePos. Все правильно vector2 проверил по SDK, сорян.

 

IMPLEMENT_CLIENTCLASS_DT( C_SDKPlayer, DT_SDKPlayer, CSDKPlayer )
	RecvPropDataTable( "sdklocaldata", 0, 0, &REFERENCE_RECV_TABLE(DT_SDKLocalPlayerExclusive) ),
	RecvPropFloat( RECVINFO( m_angEyeAngles[0] ) ),
	RecvPropFloat( RECVINFO( m_angEyeAngles[1] ) ),
	RecvPropInt( RECVINFO( m_iThrowGrenadeCounter ) ),
	RecvPropEHandle( RECVINFO( m_hRagdoll ) ),
END_RECV_TABLE()

 

Ссылка на комментарий
Поделиться на другие сайты

44 минуты назад, barsuuk сказал:

как мне найти точку б))))

уже весь инет перерыл) Даж учебник по геометрии открыл

Найди координаты того места куда ты смотришь

Ссылка на комментарий
Поделиться на другие сайты

47 минут назад, barsuuk сказал:

как мне найти точку б))))

У тебя есть точка A - глаза юнита. Тебе нужно рисовать линию куда он смотрит для этого тебе нужно знать куда он смотрит О_О! :)
А - глаза юнита.
Б - куда смотрят эти глаза.

Ссылка на комментарий
Поделиться на другие сайты

49 минут назад, barsuuk сказал:

а как определить куда смотрят глаза, если известны углы?)

Найти значения через CE.
Смотришь на стену в верхнюю точку - Неизвестное.
Смотришь на стену в нижнюю точку - Значение уменьшилось.
Смотришь на точку повыше предыдущей - Значение увеличилось.
Смотришь на точку пониже предыдущей - Значение уменьшилось.
Ну я это себе так представляя за правоту не ручаюсь.

Ссылка на комментарий
Поделиться на другие сайты

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

        private void EyesLine(ScreenVector s)
        {

            double kx = head.X+ (100*  Math.Sin(angles.X)* Math.Cos(angles.Y));
            double ky = head.Y+ (100 * Math.Sin(angles.X)* Math.Sin(angles.Y));
            double kz = head.Z+ (100 * Math.Cos(angles.X));

            ScreenVector kv = WorldToScreen((float)kx, (float)ky, (float)kz);

            bufferedGraphics.Graphics.DrawLine(new Pen(Color.Green, 2), s.X, s.Y, kv.X, kv.Y);
          

        }

 

Ссылка на комментарий
Поделиться на другие сайты

10 часов назад, barsuuk сказал:

хех) я чет не могу понять в чем проблема)) углы правильные, формула вроде тоже, но вывод это линия их головы в 0 0 кординаты окна, хотя косинус и синус вроде верные)

вот кусок кода


private void EyesLine(ScreenVector s)
{

 double kx = 50*  Math.Cos(angles.X);
 double ky = 50 * Math.Sin(angles.X);

  bufferedGraphics.Graphics.DrawLine(new Pen(Color.Green, 2), s.X, s.Y, (float)kx, (float)ky);
}

любой угол дает 0((

https://msdn.microsoft.com/ru-ru/library/system.math.cos(v=vs.110).aspx . А у тебя углы в радианах?

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.