HLFX.Ru Forum
Показать все 8 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- SET_VIEW ДЛЯ ИГРОКА. (https://hlfx.ru/forum/showthread.php?threadid=4290)


Отправлено ILZM 10-02-2014 в 15:46:

SET_VIEW ДЛЯ ИГРОКА.

Приветствую всех!

Если говорить короче, в void CBasePlayer :: PreThink ( void ) у игрока чтоит этот код, но работает не так, как надо. Эта энтити так и стоит на точке спавна игрока, а должна следовать игроку.

C++ Source Code:
1
if ( ENTINDEX ( pev->euser3 ) )
2
{
3
  CBaseViewObserver *pViewObserver = ( CBaseViewObserver *) CBaseEntity :: Instance ( pev->euser3 );
4
 
5
  pViewObserver->pev->movetype = MOVETYPE_NONE;
6
 
7
  pViewObserver->SetAbsOrigin ( pev->origin + pev->view_ofs );
8
  pViewObserver->SetAbsAngles ( GetAbsAngles ( ) );
9
 
10
  pViewObserver->SetLocalOrigin ( pev->origin + pev->view_ofs );
11
  pViewObserver->SetLocalAngles ( GetAbsAngles ( ) );
12
 
13
  pViewObserver->pev->origin = pev->origin + pev->view_ofs;
14
  pViewObserver->pev->angles = pev->angles;
15
 
16
  if ( !pev->iuser2 )
17
  {
18
    SET_VIEW ( edict ( ), pev->euser3 );
19
 
20
    pev->iuser2 = 1;
21
  }
22
 
23
  //ALERT ( at_console, "%f %f %f\n", pev->view_ofs [ 0 ], pev->view_ofs [ 1 ], pev->view_ofs [ 2 ]);
24
 
25
  ALERT ( at_console, "%f %f %f\n", pViewObserver->pev->origin [ 0 ], pViewObserver->pev->origin [ 1 ], pViewObserver->pev->origin [ 2 ]);
26
}

Тройное присваивание из-за бизысходности...

Добавлено 10-02-2014 в 19:46:

Ах ну да, не объяснено же. Создается энтити на которой стоит камера игрока. Она должна иметь такие же углы и координаты как у игрока.


Отправлено Дядя Миша 10-02-2014 в 16:05:

Цитата:
ILZM писал:
if ( ENTINDEX ( pev->euser3 ) )

Это бред, а не условие. Оно, например вернёт false, если эдикт worldspawn. Тогда уж логичнее проверять сам euser3 на NULL.
Цитата:
ILZM писал:
Эта энтити так и стоит на точке спавна игрока, а должна следовать игроку.

Ну привяжи её через парент - будет следовать игроку.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ILZM 10-02-2014 в 16:13:

Дядя Миша, а условие то рабочее) Удочерить не то, что нужно, т. К. Потом будут некоторые действия над координатами и углами. Или же при парентировании можно ставить локальные углы? Кстати, а почему не работает? В скриптинге бы работало.


Отправлено Дядя Миша 10-02-2014 в 16:38:

Цитата:
ILZM писал:
Или же при парентировании можно ставить локальные углы?

Можно конечно.

Цитата:
ILZM писал:
а условие то рабочее)

Ты спорить пришёл или совета спрашивать?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ILZM 10-02-2014 в 17:22:

Дядя Миша, спасибо за совет. работает А как удочерить углы?


Отправлено XaeroX 10-02-2014 в 17:26:

Цитата:
ILZM писал:
Тройное присваивание из-за бизысходности...

А если в цикле шагов на 10000 попробовать?

__________________

xaerox on Vivino


Отправлено Дядя Миша 10-02-2014 в 17:31:

Цитата:
XaeroX писал:
А если в цикле шагов на 10000 попробовать?

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 10-02-2014 в 17:42:

Дядя Миша
Я просто попытался воспользоваться логикой автора. Говорят, когда хочешь понять алгоритм - сначала пойми авторскую логику.

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 20:41.
Показать все 8 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024